エンティティフレームワークの新機能です(6.0を使用していますが、更新が必要な場合)。エンティティをlinqクエリにバインドする方法を探しています。例えば、私が持っている:彼らの両方がデータベース内のテーブルにマップされEntity Frameworkのマップエンティティからlinqクエリへ
public class User
{
public string Name {get;set;}
public WorkPlace Place {get;set;}
public bool IsAlive{get;set;}
}
public class WorkPlace
{
public string Name {get;set;}
public bool IsActive {get;set;}
public Collection<User> Users;
}
をし、私が持っているOnModelCreating
:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<User>().ToTable(tableName: "users");
modelBuilder.Entity<WorkPlace>().ToTable(tableName: "workplaces");
}
しかし、私は(ナビゲーションと遅延ロードで)別のオブジェクトを使用する必要があります。
public class CustomUser
{
public string Name {get;set;}
public CustomWorkPlace Place {get;set;}
}
public class CustomWorkPlace
{
public string Name {get;set;}
public Collection<CustomUser> Users;
}
someBuilder.Entity<CustomUser>().ToLinq(cntx => cntx.Set<User>().Where(user => user.IsAlive)).MapProperties();
// the way of mapping properties is not important
someBuilder.Entity<CustomWorkPlace>().ToLinq(cntx => cntx.Set<WorkPlace>().Where(place => plase.IsActive)).MapProperties()
そして、それの最も興味深いのは、ナビゲーションを通過している私は、ユーザーの会社を得るとき、私は、COMのためにアクティブでない会社、及びこれを取得してはなりませんpany - 私は生きていないユーザーにマップされているCustomUser
を取得してはいけません。
どうもありがとう
何が問題なのですか? – Kinetic
エンティティ・フレームワークまたはナゲット・エクステンションでこのロジックを実装する(カスタム・オブジェクトをコンテキストから取得する方法)。 – VVildVVolf
通常のエンティティを使用してデータをロードし、そこからカスタムデータを作成します。 – Kinetic