我创建了一个公司MVC4“模板”,其中包含基本帮助器,用户功能等,只是每个项目所需的东西。
现在我试图将由{3}部分组成的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
,代码优先迁移能够选择这个,还是有更好的方法?
答案 0 :(得分:1)
如果您的预订包含语言和用户类的链接,那么您将必须使用相同的上下文。
如果你想要更松散耦合的实现,那么只需要包含ID而不是实际的类,那么你可以使用单独的上下文,但是你将无法轻松引用对象等等。实施实际上取决于您的项目有多大以及您计划如何更新解决方案。