0

我创建了一个公司 MVC4“模板”,其中包含基本的帮助程序、用户功能等,只是每个项目都需要的东西。

现在我试图分离Users由 3 个部分组成的部分:控制器/模型/视图、业务层和数据层。

现在我遇到了一个问题,我将数据层部分取出并将其放在一个单独的项目中,该项目将成为一个私有 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并将保留在网站上,因为它是特定于站点的。

LanguagesUsers表没有相互引用,但对和Reservations都有引用。UserLanguage

这里有哪些选项可以保持完整的 Code-First 模型,包括迁移。我可以DbContext为每个项目/NuGet 分别创建多个吗,代码优先迁移是否能够解决这个问题,或者有更好的方法吗?

4

1 回答 1

1

如果您的预订包含指向语言和用户类的链接,那么您将必须使用相同的上下文。

如果您想要更松散耦合的实现,那么只需包含 ID 而不是实际的类,那么您可以使用单独的上下文,但您将失去引用对象等的便利性。实施实际上取决于您的项目有多大以及您计划如何更新解决方案。

于 2013-10-25T23:36:53.277 回答