我想知道使用实体框架创建具有多个数据库的项目的可行方法是什么。
我目前的解决方案项目看起来像这样。
SystemName.Data // Points to Database1
SystemName.Core // Points to Database1
SystemName.Database2.Data
SystemName.Database2.Core
SystemName.Database3.Data
SystemName.Database3.Core
SystemName.Business
SystemName.UI
我应该将所有数据和核心程序集放在一个项目中吗? 我是否还应为每个数据库创建不同的业务项目?
提前致谢!
答案 0 :(得分:0)
In EntityFramework 6 (EF6), you can use multiple contexts on the same database。在EF5中,单个用户模型(DbContext)仅由一个数据库实例管理。
因此,多个DbContexts可以在不同的项目中,并在 EF6 中使用相同的数据库实例。
DbContext
使用的数据库可以由app.config(或web.config)决定。因此,我更愿意根据其目的将我的DbContext子类放入不同的项目中。如果考虑数据库的最大大小,例如每个数据库10GB,那么将一个DbContext放到一个数据库可能是一个不错的选择。 但是在EF6中,DbContext可以被视为插件。如果应用程序需要扩展以获得更多功能,那么额外的DbContext将为扩展创建必要的数据库。有一天,扩展名没有用,需要卸载,然后删除同一数据库中的一些表。