3

共通のプロパティを持つ 2 つのエンティティがあります。共通のプロパティを使用して、クエリのどこかに適用する必要があります。だから私はこれを行うことにしました:

public interface IContract
{
    string Name{get;set;}
}

public class Entity1 : IContract
{
    public string Name{get;set;}
}

public class Entity2 : IContract
{
    public string Name{get;set;}
}

public class Repository
{
    public IQueryable<T> Filter<T>(IQueryable<T> query, Request request) where T : IContract
    {
        return query.Where(x => x.Name== request.Name);
    }
    public IQueryable<Entity1> GetEntitity1()
    {
        return Filter(entities.Entity1, new Request { Name = "X" };
    }

    public IQueryable<Entity2> GetEntitity2()
    {
        return Filter(entities.Entity2, new Request { Name = "X" };
    }
}

問題はこの方法を使用していて、apply .ToList() の後に受け取る: NotSupportedException. LINQ to Entities は、EDM プリミティブ型または列挙型のキャストのみをサポートします。

それを修正する方法がありますか、それとも ObjectQuery の Where(string) を使用する必要がありますか?

ありがとう

4

1 に答える 1