如何在Entity Framework中的多个数据库之间共享类?

问题描述 投票:0回答:1

我们有两个不同的应用程序(项目1,项目2),将使用两个不同的数据库来实现不同的目的,但有一些来自DB1的表类,DB2使用起来很有意义。我们正在使用代码优先的Entity Framework来创建两个数据库。目前的方法是在DB2中有类似的类就可以了,在向项目2提供数据之前,让项目1进行从DB1对象到DB2对象的转换。我想知道是否可以做一个设计上的改变,去掉翻译和重复的类,而只是让两个项目都使用通用的类。

我想知道的是,是否有办法把我们想在项目之间共享的3、4个类放到一些库中,这些库可以在两个项目中引用,并包含在他们的DB中?

目前的设计是这样的。

DB1 project:  
User   
Task  
many different tables  

DB2 project:  
User   
Task  
many different tables 

而我想象的是这样的:

Class Library project:  
User  
Task

DB1 project:  
Reference to Class Library      
many different tables  

DB2 project:  
Reference to Class Library  
many different tables 

有什么方法可以让它在两个Entity Framework数据库中工作?

c# entity-framework
1个回答
0
投票

EF只是要求每个C#project有一个DbContext,这是为了解决迁移等问题。你可以在你的应用程序中拥有多个项目。

不建议在Context之间共享类,特别是当它们属于不同的数据库时。从你的代码中拥有一个实体,你应该总是能够知道,它属于哪个数据库。

但你也提到了 "不同的应用程序",这是另一种情况,比如有一个前端和后端应用程序的同一个数据库?他们可以用Entity类共享同一个C#项目。但这不是一个应用程序中的多个DB,那是一个DB上的多个应用程序)。

© www.soinside.com 2019 - 2024. All rights reserved.