首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EF核心2.2到EF核心3.1

EF核心2.2到EF核心3.1
EN

Stack Overflow用户
提问于 2020-01-30 21:26:12
回答 2查看 180关注 0票数 1

当我使用EF 2.2时,它运行此代码时没有任何问题:

代码语言:javascript
复制
var resource = locResRepo.GetWhere(i => i.ForApplication.ToLower() == applicationName.ToLower())
            .Where(resourcesConditionExpression)
            .Select(item => new ResourceKeyObject
            {
                Id = item.Id,
                ResourceKey = item.ResourceKey,
                ResourceKeyValues = item.ActualLocalizationTranslation
                .Where(translationConditionExpression)
                .Select(v => new ResourceKeyValues
                {
                    Language = v.Language,
                    KeyValue = v.Value

                }).ToList()
            }).ToList();

但是现在它抛出了错误:

代码语言:javascript
复制
System.InvalidOperationException: Processing of the LINQ expression '(MaterializeCollectionNavigation(
    navigation: Navigation: LocalizationResources.ActualLocalizationTranslation,
    subquery: (NavigationExpansionExpression
        Source: DbSet<ActualLocalizationTranslation>
            .Where(a => EF.Property<Nullable<int>>(l, "Id") != null && EF.Property<Nullable<int>>(l, "Id") == EF.Property<Nullable<int>>(a, "ResourceId"))
        PendingSelector: a => (NavigationTreeExpression
            Value: (EntityReference: ActualLocalizationTranslation)
            Expression: a)
    )
        .Where(i => EF.Property<Nullable<int>>((NavigationTreeExpression
            Value: (EntityReference: LocalizationResources)
            Expression: l), "Id") != null && EF.Property<Nullable<int>>((NavigationTreeExpression
            Value: (EntityReference: LocalizationResources)
            Expression: l), "Id") == EF.Property<Nullable<int>>(i, "ResourceId")))
    .Where(t => True)' by 'NavigationExpandingExpressionVisitor' failed. This may indicate either a bug or a limitation in EF Core. See https://go.microsoft.com/fwlink/?linkid=2101433 for more detailed information.
   at Microsoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)
   at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor) and so on.....

我真的不明白为什么..也许我知道一些东西,但我不知道如何实现它

EN

回答 2

Stack Overflow用户

发布于 2020-01-30 21:33:40

从3.0开始,不再在客户端评估EF Core LINQ查询。learn more: MSDN

实际上,如果i.ForApplication属性做了一些计算,我认为你的问题可能出在它身上。

票数 1
EN

Stack Overflow用户

发布于 2020-01-30 22:01:07

我找到了一个解决方案。之前的select必须是.ToList(),因为EF3.1逻辑

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59987116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档