Fluent APIでいくつかのモデルを構成する私のアプリケーションに2つのDbContextがあります。私の最初のDbContextの1つのモデルは、2番目のDbContextで設定された2番目のモデルへの外部キーを持っています。すべてのDbContextを発見
public class UserData
{
public double Id { get; set; }
public string LastName { get; set; }
public string FirstName { get; set; }
public string FullName {
get {
return $"{this.FirstName} {this.LastName}";
}
}
public string Adress1 { get; set; }
public virtual BaseUserTreeData BaseUserTree { get; set; }
public double? BaseUserTreeId { get; set; }
public virtual List<DeviceData> Devices { get; set; }
}
モデルBaseUserTreeData
は私の第二DbContextで構成された私の外国人の財産です。
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<BaseUserTreeData>().ToTable("sw_data_baseusertree");
modelBuilder.Entity<BaseUserTreeData>().Property(baseusertree => baseusertree.Id).HasColumnName("baseusertree_ID");
modelBuilder.Entity<BaseUserTreeData>().Property(baseusertree => baseusertree.Label).HasColumnName("label");
modelBuilder.Entity<BaseUserTreeData>().Property(baseusertree => baseusertree.ParentTreeId).HasColumnName("baseUserTree_ID_parent");
modelBuilder.Entity<BaseUserTreeData>().HasKey(baseusertree => baseusertree.Id);
modelBuilder.Entity<BaseUserTreeData>()
.HasOptional(tree => tree.ParentTree)
.WithMany(tree => tree.ChildTrees)
.HasForeignKey(tree => tree.ParentTreeId);
}
私が初めての私UserDbContext
でUserData
を使用すると、私の第二DbContext
のOnModelCreating
が呼び出されていないので、BaseUserTreeData
マッピングが実行され、Entity Frameworkの6によって生成されたクエリが間違っていません。私は別のクラスでEntityConfiguration
を共有することができますが、OnModelCreating
のすべてを私のDbContext
と呼ぶようにEF6に伝える方法はありますか?私はあなたが間違っpath.Thisでいると思う
なぜあなたはここ2 'contexts'が必要なのですか? – Sampath
最初のDbContext –
のすべてのエンティティを除いて、2番目のDbContextを使用したいので、それを何のために使用しますか?あなたはそのパターンを使って解決しようとしていますか? – Sampath