0

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

但是我如何通过 EF 同时访问这两个模式?我本质上会有两个不同的连接吗?或者我会有两种不同的背景?

我的另一个选择是创建另一个数据库,但我不知道这有什么优缺点。当然,我需要在我的表和其他表之间创建 INNER JOINS。是否可以在 EF 中在 2 个不同的模式或数据库之间使用内部连接?

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

4

1 回答 1

0

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

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

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

于 2012-07-02T11:02:35.460 回答