共通のプロパティを持つ 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) を使用する必要がありますか?
ありがとう