0

我已经创建了 mvc3 应用程序。

.edmx已经创建Db1了一个基于的视图,但现在我创建了一个基于的视图,Database2我需要在我的项目中使用这个视图。

为此,我需要更新我的 EF.edmx文件。但是当我右键单击并选择选项时,Update model from Database 我只得到all tables , view ,sps fromDb1 ` its obvious But as i need to use view which is fromDatabase2 how can i add it into my model.edmx` 文件?请帮忙。

4

5 回答 5

2

如果两个 edmx 想要合并,则使两个 edmx 文件的部分类相同(将有两个设计器类)。为其他 edmx 文件添加另一个构造函数并使其参数化。用于标识要加载哪个 edmx 的参数。

在业务层中添加另一个类文件,在这个类文件中创建 edmx 部分类的对象,在这个类下,当你想加载谁时,edmx 文件在 edmx 部分类构造函数的构造函数中传递一些参数来识别需要打开哪个连接。

根据决定的页面名称(自定义逻辑或表名;edmx 将被加载)在 edmx 设计器类的构造函数中传递参数。

在 web 配置文件中,多个连接字符串可用于多个 edmx 文件。

于 2012-09-13T12:18:57.163 回答
1

实体框架不支持将多个数据库映射到一个模型/.edmx 文件(请参阅:使用 Visual Studio 2010 统一两个模型 (edmx)

因此,您需要为另一个数据库创建一个单独的 .edmx 文件/模型,并使用单独的上下文引用每个模型。您的项目中还需要 2 个连接字符串。

于 2012-04-23T14:07:43.530 回答
0

一个“黑客”可能是,即 MS SQL链接这两个服务器并在第一个服务器上公开来自其他服务器的数据,即通过视图。但我认为它只适用于少数几张桌子。对于大型模型,这将是痛苦的。其他数据库(Firebird,Oracle,...)以类似的方式支持这一点。

于 2012-04-24T06:22:48.573 回答
0

我所做的,在 db A 中创建存储过程并通过该 SP 访问 db B,例如 select * from db2.table.then 为该特定 SP 创建一个函数导入。

如果您在同一台服务器上同时拥有两个数据库,则此方法效果很好。如果它们位于不同的服务器上,您可以在 B 上创建链接服务器以使用相同的存储过程方法访问 A。

于 2012-11-02T10:05:32.433 回答
0

使用 ctx 作为新实体()

        ctx.Database.Connection.ConnectionString = conString

结束使用

于 2016-10-19T22:46:59.770 回答