簡體   English   中英

在多個項目中分離DbContext

[英]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; }
    ....
}

LanguagesUsers將放在單獨的項目/ NuGet程序包中,並且Reservations將保留在網站上,因為它是特定於站點的。

LanguagesUsers表之間沒有相互引用,但是Reservations既有User也有Language的引用。

這里有哪些選項可以保留完整的Code-First模型(包括遷移)。 我可以為每個項目/ NuGet分別創建多個DbContext ,代碼優先遷移是否可以使用它,還是有更好的方法?

如果您的預訂包含指向語言和用戶類的鏈接,那么您將必須使用相同的上下文。

如果您想要更寬松地耦合的實現,則只需包含ID而不是實際的類,則可以使用單獨的上下文,但是您將失去引用對象的便利性,依此類推。 實施實際上取決於項目的規模以及您計划如何更新解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM