我最近通過Steve Smith和Julie Lerman觀看了Pluralsight上的Domain-Driven Design Fundamentals,這是一門很棒的課程,但是我有關於EF Code-First和DDD的問題,我得到了實際上了解大多數DDD,但我很難理解在DDD中使用EF Code-First。可以說我有兩個有界的上下文,並且我在每個有界的上下文中都有一個Customer實體來共享一個Id和Name。DDD和EF代碼優先遷移
namespace Accounts
{
public class Customer : Entity
{
public Guid Id { get; private set; }
public string Name { get; private set; }
public string AccountNo { get; private set; }
}
}
namespace Deliveries
{
public class Customer : Entity
{
public Guid Id { get; private set; }
public string Name { get; private set; }
public Address DeliveryAddress { get; private set; }
}
}
在每個界上下文我有一個的DbContext一個數據層,讓爲參數調用一個Accounts.AccountsDbContext和Deliveries.DeliveriesDbContext(起見各自具有IDbSet,使用它自己的約束上下文客戶實體定義如上)
我的問題和我很難理解的是,如何處理跨不同DbContext的代碼優先遷移。客戶需要引用相同的數據庫表,但只公開那些與他們所在的有界上下文相關的屬性。那麼EF如何通過遷移來處理?
感謝您的回答,我當然不記得在課程視頻中提到它,但是我確實在代碼示例中錯過了這一點。它看起來像朱莉和你的答案是建議使用「超級」上下文,其中包含您的數據庫的一切,並使用手動遷移這是很好,因爲我從來沒有使用自動遷移,但是,也許這只是我,但看起來似乎是矯枉過正有這個神話般的「第三」上下文能夠實現代碼優先,但如果這是唯一的選擇,那麼我認爲它是有道理的。 –
是的,úber語境是唯一的方法,我不喜歡它特別多。 – Dabblernl