Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架多数据库项目结构_C#_Entity Framework_Project Management - Fatal编程技术网

C# 实体框架多数据库项目结构

C# 实体框架多数据库项目结构,c#,entity-framework,project-management,C#,Entity Framework,Project Management,我想知道在使用实体框架创建具有多个数据库的项目时,什么是可取的方法 我当前的解决方案项目如下所示 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.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
我应该把所有的数据和核心组件放在一个项目中吗? 我是否应该为每个数据库创建不同的业务项目

提前谢谢

。在EF5中,单用户模型(DbContext)仅由一个数据库实例管理

因此,多个DBContext可以位于不同的项目中,并在EF6中使用相同的数据库实例

使现代化
DbContext
使用的数据库可以由app.config(或web.config)决定。因此,我更喜欢根据不同的目的将DbContext的子类放入不同的项目中。如果考虑数据库的最大大小,比如每个数据库10GB,那么将一个DbContext放到一个数据库中可能是一个不错的选择但在EF6中,DbContext可以被视为一个插件。如果应用程序需要扩展以获得更多功能,那么额外的DbContext将为扩展创建必要的数据库。有朝一日,该扩展不再有用,需要卸载它,然后同一数据库中的某些表将被删除。

顺便说一句,我正在Visual Studio 2010中使用entity framework 6。我更新了答案。我在VS 2012中使用了EF6。我喜欢EF6。