Этот фрагмент кода вызывает ArgumentException
, показанный ниже. Что странно, так это то, что это происходит только во время выполнения модульного теста. Когда приложение запускается, этот код запускается и работает. Я думаю, это может означать, что это проблема с данными? Я могу смотреть дальше в этом.
Я пытался настроить анонимные типы в объединении, чтобы они имели одинаковые имена столбцов, делая что-то вроде A = ...
и B = ...
в обоих анонимных типах, но это ничего не меняет.
Ниже мой запрос:
var query =
(from account in db.AccountDetails
join team in db.Teams on new { account.CompanyId, account.TeamCode }
equals new { teams.CompanyId, teams.TeamCode } into groupedTeams
from team in groupedTeams.DefaultIfEmpty()
where account.CompanyId == message.CompanyId && account.ProcessId == message.ProcessId
select new
{
AccountDetail = account,
Team = groupedTeams.FirstOrDefault()
}
);
Исключение:
System.ArgumentException: Expression of type '' cannot be used for parameter of type 'System.Collections.Generic.IEnumerable`1[Packing.ColdCamperEtl.Business.Data.Elmer.Models.Tax]' of method 'System.Linq.IQueryable`1[<>f__AnonymousType0`2[Packing.ColdCamperEtl.Business.Data.Elmer.Models.AccountDetail,System.Collections.Generic.IEnumerable`1[Packing.ColdCamperEtl.Business.Data.Elmer.Models.Tax]]] GroupJoin[AccountDetail,Tax,<>f__AnonymousType1`2,<>f__AnonymousType0`2](System.Linq.IQueryable`1[Packing.ColdCamperEtl.Business.Data.Elmer.Models.AccountDetail], System.Collections.Generic.IEnumerable`1[Packing.ColdCamperEtl.Business.Data.Elmer.Models.Tax], System.Linq.Expressions.Expression`1[System.Func`2[Packing.ColdCamperEtl.Business.Data.Elmer.Models.AccountDetail,<>f__AnonymousType1`2[System.String,System.String]]], System.Linq.Expressions.Expression`1[System.Func`2[Packing.ColdCamperEtl.Business.Data.Elmer.Models.Tax,<>f__AnonymousType1`2[System.String,System.String]]], System.Linq.Expressions.Expression`1[System.Func`3[Packing.ColdCamperEtl.Business.Data.Elmer.Models.AccountDetail,System.Collections.Generic.IEnumerable`1[Packing.ColdCamperEtl.Business.Data.Elmer.Models.Tax],<>f__AnonymousType0`2[Packing.ColdCamperEtl.Business.Data.Elmer.Models.AccountDetail,System.Collections.Generic.IEnumerable`1[Packing.ColdCamperEtl.Business.Data.Elmer.Models.Tax]]]])'
at System.Linq.Expressions.Expression.ValidateOneArgument(MethodBase method, ExpressionType nodeKind, Expression arg, ParameterInfo pi)
at System.Linq.Expressions.Expression.ValidateArgumentTypes(MethodBase method, ExpressionType nodeKind, ReadOnlyCollection`1& arguments)
at System.Linq.Expressions.Expression.Call(Expression instance, MethodInfo method, IEnumerable`1 arguments)
at System.Linq.Queryable.GroupJoin[TOuter,TInner,TKey,TResult](IQueryable`1 outer, IEnumerable`1 inner, Expression`1 outerKeySelector, Expression`1 innerKeySelector, Expression`1 resultSelector)
Почему это происходит?