我想創建多個上下文的EF代碼。 用於StaffContext(HR)的另一個上下文是ShippingContext。代碼第一EF有多個上下文
是具有多重執行緒的想法有什麼優勢?因爲我覺得構建起來很複雜。
我們如何構造實體?在基礎上下文中還是在每個單獨的上下文中定義全部?
在這些情況下,我需要訪問Staff實體,當我嘗試「更新數據庫」時會給我一個錯誤,因爲Staff實體已經存在於其他上下文中。我在不同情況下擁有相同實體的事實是錯誤的設計嗎?
這是我的時刻:
public class StaffContext : BaseContext<StaffContext>
{
public DbSet<StaffPosition> StaffPositions { get; set; }
public DbSet<Staff> Staffs { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
}
public class ShippingContext : BaseContext<ShippingContext>
{
public DbSet<Armada> Armadas { get; set; }
public DbSet<Product> Products { get; set; }
public DbSet<Shipment> Shipments { get; set; }
public DbSet<ShipmentDetail> ShipmentDetails { get; set; }
public DbSet<ShipmentHandler> ShipmentHandlers { get; set; }
public DbSet<ShipmentOrder> ShipmentOrders { get; set; }
public DbSet<ShipmentOrderDetail> ShipmentOrderDetails { get; set; }
public DbSet<Staff> Staffs { get; set; }
public DbSet<Pangkalan> Pangkalans { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
}
非常感謝提前。
您可能想要提防這個問題可能導致的對比回答。你很可能會從人們那裏得到答案,或者戴着'EF'帽子或'DDD'帽子。一個將以數據爲中心,另一個將以域爲中心。兩個陣營對「背景」和「實體」這兩個詞的含義有不同的理解。 –
[EF 6加上幾個數據庫上下文]的可能的副本(http://stackoverflow.com/questions/24908719/ef-6-plus-several-db-contexts) – guillaume31
嗨阿德里安湯普森菲利普斯, 是的,說實話我只是開始我的自我,並遇到這個DDD條款,然後我決定挖掘更多關於它。謝謝 – hollycrab