![](/img/trans.png)
[英]C# and EntityFramework: Using a DBContext in multiple projects
[英]Separating DbContext in multiple projects
我創建了一個公司MVC4“模板”,其中包含基本的幫助程序,用戶功能等,只是每個項目中需要的東西。
現在,我試圖將Users
部分分為三個部分:控制器/模型/視圖,業務層和數據層。
現在,我遇到了一個問題,我拔出數據層部分並將其放在一個單獨的項目中,該項目將成為私有的Nuget包。
但是該軟件包不知道DbContext
因為它位於實際項目網站的DataLayer中。
該網站的DbContext當前如下所示:
public class DataContext : DbContext
{
....
public DbSet<Language> Languages { get; set; }
public DbSet<User> Users { get; set; }
....
public DbSet<Reservation> Reservations { get; set; }
....
}
Languages
和Users
將放在單獨的項目/ NuGet程序包中,並且Reservations
將保留在網站上,因為它是特定於站點的。
Languages
和Users
表之間沒有相互引用,但是Reservations
既有User
也有Language
的引用。
這里有哪些選項可以保留完整的Code-First模型(包括遷移)。 我可以為每個項目/ NuGet分別創建多個DbContext
,代碼優先遷移是否可以使用它,還是有更好的方法?
如果您的預訂包含指向語言和用戶類的鏈接,那么您將必須使用相同的上下文。
如果您想要更寬松地耦合的實現,則只需包含ID而不是實際的類,則可以使用單獨的上下文,但是您將失去引用對象的便利性,依此類推。 實施實際上取決於項目的規模以及您計划如何更新解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.