结合Code First和Database First方法

时间:2018-01-26 06:27:34

标签: c# sql-server entity-framework ef-code-first ef-database-first

假设我有一个现有项目,它的实体类是使用服务器A中的数据库优先方法创建的。随后我在服务器B中创建一个具有完全相同名称的新数据库,因此导入来自服务器A的数据。接下来,通过使用代码优先方法,我进一步添加两个表(具体),并更新服务器B中的数据库。最后,我删除了现有的edmx模型现有项目,并使用服务器B中的 ADO实体框架方法进一步添加它。请注意,我目前无法从我之前创建的自动生成的模型类中引用变量类型,事实上,他们都是同名的。我可以知道我怎么想这样做?或者我不应该这样做?好吧,我只是想尝试新的东西。希望得到一些解释。

1 个答案:

答案 0 :(得分:0)

好吧,我会做什么:

首先,在应用程序中存储两个连接字符串,一个用于服务器A,一个用于服务器B.在上下文类构造函数中,您可以指定要使用的连接字符串(让我们说conn。字符串A用于B db的db和conn。字符串B)。像这样:

<connectionStrings>
  <add name="connStrA" ... />
  <add name="connStrB" ... />
</connectionStrings>

首先创建一个,因为您使用了DB first方法。然后,您必须切换自动生成的上下文类。您必须更改传递给构造函数的参数,默认情况下应该是:public MyContextClass() : base("name=connStrA"){}。 您必须将其更改为使用connStrB

进行更改(使用迁移),它们将反映在DB中,您已指向在上述构造函数中指定的连接字符串。