我的應用程序中有兩個DbContext,它們使用Fluent API配置了一些模型。我的第一個DbContext的一個模型對我在第二個DbContext中配置的第二個模型有一個外鍵。探索所有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);
}
當我使用UserData
我UserDbContext
首次,的OnModelCreating
我的第二個DbContext
不叫,所以不執行BaseUserTreeData
映射,並通過實體框架6生成的查詢是錯誤的。我看到我可以在不同的課程中分享EntityConfiguration
,但是有沒有辦法告訴EF6撥打我所有的DbContext
?
爲什麼你在這裏需要2'contexts'? – Sampath
因爲我想使用我的第二個DbContext而沒有第一個DbContext的所有實體 –
那麼你用什麼?哪個問題是你要用這種模式解決的? – Sampath