实体框架:使用多个模式或2个不同的dbs?

时间:2012-07-01 19:36:03

标签: sql-server-2008 entity-framework entity-framework-4 schema database-schema

我有一个现有的数据库,需要添加其他表等。我无法控制数据库,所以我想我会在同一个数据库中创建我的表,但是在不同的模式下。根据我的理解,这将允许我创建我的表,而不用担心名称冲突等。

但是如何通过EF同时访问两个模式?我必须有2个不同的连接,有没有人有任何关于此的信息或以前做过吗?

2个不同的连接或2个不同的上下文??

我的另一个选择是创建另一个数据库,但我不知道它有什么利弊。

当然我需要在我的表和其他表之间创建INNER JOINS ...这是否可以在两个不同的模式或数据库之间使用EF中的内连接?

我使用的数据库是SQL Server 2008 R2。

非常感谢有关此事的任何帮助或信息

提前致谢

1 个答案:

答案 0 :(得分:0)

如果要在两个模式的表之间使用连接,则必须在同一上下文中定义这些表(这也意味着将使用单个连接)。

一旦使用两种不同的上下文类型分别映射每个模式,或者一旦使用两个数据库,您将无法使用Linq-to-entities / ESQL查询中其他模式的实体,您将无法使用导航来自其他模式的表的属性。这种情况下的变通办法很复杂,因为您必须使用别名或数据库视图将表从第二个数据库获取到第一个数据库。

EF只能用于映射到当前上下文的数据库对象,它只能打开与单个数据库的连接(它也不能使用数据库前缀来访问同一服务器上不同数据库中的表)。