Я использую asp. net core 3.1 и EFCore 3.1.1.
Следующий код работал нормально с EFCore 2.0, но после миграции я вижу, что он перестал работать:
var contacts = await _dbContext.Contacts.Where(co => IdVals.Any(id => id.Equals(co.ContactId)))
.Join(_dbContext.Address,
co => co.AddressId,
ad => ad.AddressId,
(co, ad) => new ContactDTO
{
ContactId = co.ContactId,
FirstName = co.FirstName,
LastName = co.LastName,
City = ad.City,
StreetAddress = ad.Street,
Country = ad.Country
})
.AsNoTracking()
.ToListAsync();
Вот подробности ошибки:
"message": "GraphQL.ExecutionError: Выражение LINQ 'DbSet \ n .Where (c => __IdVals_0 \ n .Contains (c. ContactId)) \ n .Join (\ n external: DbSet, \ n inner: c => c .AddressId, \ n outerKeySelector: a => a.AddressId, \ n innerKeySelector: (c, a ) => new TransparentIdentifier (\ n Outer = c, \ n Inner = a \ n)) 'не может быть переведен. Перепишите запрос в форме, которую можно перевести, или переключитесь на оценку клиента явно, вставив вызовите AsEnumerable (), AsAsyncEnumerable (), ToList () или ToListAsyn c (). Для получения дополнительной информации см. https://go.microsoft.com/fwlink/?linkid=2101038. \ n ---> System.InvalidOperationException: выражение LINQ 'DbSet \ n .Where (c => __IdVals_0 \ n .Contains (c .ContactId)) \ n .Join (\ n external: DbSet, \ n inner: c => * 1 034 * .AddressId, \ n outerKeySelector: a => a.AddressId, \ n innerKeySelector: (* c, a) => new TransparentIdentifier (\ n Outer = c, \ n Inner = a \ n)) ' не может быть переведено. Либо переписать запрос в форме, которую можно перевести, либо переключиться на оценку клиента явно, вставив вызов либо в AsEnumerable (), AsAsyncEnumerable (), ToList (), либо ToListAsyn c (). См. https://go.microsoft.com/fwlink/?linkid=2101038 для получения дополнительной информации. \ N на сайте Microsoft.EntityFrameworkCore.Query.QueryableMethodTranslatingExpressionVisitor.g__CheckTranslated | 8_0 (ShapedQueryExpression переведено, <> c__DisplayClass8_0 & exall_ExeQhoPlayTecureCore.dll). methodCallExpression) \ n в System.Linq.Expressions.MethodCallExpression.Accept (посетитель ExpressionVisitor) \ n в System.Linq.Expressions.ExpressionVisitor.Visit (узел выражений) \ n в Microsoft.EntityFrameworkCore.Query.all_ExceptionPortalWision \ n в System.Linq.Expressions.MethodCallExpression.Accept (посетитель ExpressionVisitor) \ n в System.Linq.Expressions.ExpressionVisitor.Visit (узел выражения) \ n в Microsoft.EntityFrameworkCore.Query.QueryCompilationContext.CreateQuest ) \ n в Microsoft.EntityFrameworkCore.Storage.Database.CompileQuery [TResult] (Express ионный запрос, логическое асинхронное c) \ n в Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.CompileQueryCore [TResult] (база данных ID, запрос выражения, модель IModel, логическое асинхронное c) \ n в Microsoft.EntityFrameworkCore.Query .Internal.QueryCompiler. <> C__DisplayClass12_0 1.<ExecuteAsync>b__0()\n at Microsoft.EntityFrameworkCore.Query.Internal.CompiledQueryCache.GetOrAddQueryCore[TFunc](Object cacheKey, Func
1 компилятор) \ n в Microsoft.EntityFrameworkCore.Query.Internal.CompiledQueryCache.GetOrAddQuery [TResult] (объект cacheKey, Fun c1 compiler)\n at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.ExecuteAsync[TResult](Expression query, CancellationToken cancellationToken)\n at Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryProvider.ExecuteAsync[TResult](Expression expression, CancellationToken cancellationToken)\n at Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable
1.Генксация отмены выражения) n в System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable 1.GetAsyncEnumerator()\n at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync[TSource](IQueryable
1 источник, CancellationToken cancellationToken) \ n в Author.Query.Persistence.ArticleService.GetArticleDetailsAsyn c (Int32 articleId, 1032 1.42D_SynageIt Int32 (CancellationToken cancellationToken) \ n в Author.Query.New.API.GraphQL.Resolvers.ArticlesResolver. <> C__DisplayClass3_1. d.MoveNext () в /src/QueryStack/Author.Query.New.API/GraphQL/Resolvers/ArticlesResolver.cs:line 41 \ n --- Конец трассировки стека из предыдущего расположения, где было сгенерировано исключение --- \ n at GraphQL.Types.ResolveFieldContext * разрешение 1018 * 2, ошибка Func`2) \ n --- Конец внутренней трассировки стека исключений --- ",
Может кто-нибудь помочь мне узнать, как решить эту проблему