私はEntityFrameworkを初めて使用しますが、次のことに固執しています。
EDMXモデルにインポートした既存のデータベースがあります。
私のエンティティのいくつかは、「所有者」の同じ概念を共有しています。
各エンティティには、「所有者」のカスタム名があります。フランス語の「auteur」では、「作者」、「所有者」、「所有者」と呼ばれることもあります。
そこで、単純なインターフェイスを実装し、部分的なクラスを作成して、エンティティがすべて同じ名前の「所有者」の概念を共有できるようにしました。
public interface IAPIResource
{
int owner { get; }
}
そして、エンティティBlogPostの私の部分的なクラス
public partial class BlogPost : IAPIResource
{
public int owner { get { return auteur; } }
}
LINQToEntitiesクエリで使用したいのですが、IAPIResourceはエンティティタイプではないため、LINQはそれが不可能であると教えてくれます。
public List<T> GetFilteredEntities<T>(int owner, IQueryable<T> entities, MyDBContext db)
{
return entities.Where(e => ((IAPIResource)e).owner == owner).ToList();
}
.GetType
Reflection(および.GetProperty
および)を試しまし.GetValue
たが、LINQもそれをサポートしていません。
私もPOCOを試しましたが、あまり運がありません。
また、抽象エンティティなどでDBモデルを変更したくありません。
LINQ式に飛び込むことなく簡単な解決策を持っている人はいますか?
注意:実際のクエリははるかに複雑です。そのため、Expressionを使用するつもりはありません。
ありがとうございました。