EF核心摘要字段无法翻译,将在本地进行评估

时间:2019-05-02 09:58:15

标签: c# entity-framework linq entity-framework-core

我有模型和上下文:

public abstract class EntityTemplate : BaseEntity
{
    //-/-/-/-/
    public abstract int EntityId { get; set; }
}

public class ProjectTemplate : EntityTemplate
{
   //-/-/-/-/
   public override int EntityId
    {
        get => ProjectId;
        set => ProjectId = value;
    }
}
public class MyDbContext : DbContext
{
    public DbSet<ProjectTemplate> ProjectTemplates { get; set; }

    //-/-/-/-/
    modelBuilder.Entity<EntityTemplate>().ToTable("EntityTemplates");
}

我为所有EntityTemplate提供一项通用服务。 所以我在按ID过滤时遇到问题

//-/-/-/-/
where TEntityTemplate : EntityTemplate, new()
//-/-/-/-/
private readonly IRepository<TEntityTemplate> _entityTemplatesRepository;
//-/-/-/-/

var aphiTemplates = _entityTemplatesRepository
            .Read() //returns IQueryable<T> from context
            .AsNoTracking()
            .Where(x => x.EntityId == message.EntityId).ToList();

在收到此请求后,我发出警告:

LINQ表达式'where([x] .EntityId == __message_EntityId_0)'无法翻译,将在本地进行评估。

如何在数据库上做到这一点?

0 个答案:

没有答案