【问题标题】:Entity Framework: Using multiple schemas or two different databases?实体框架:使用多个模式或两个不同的数据库?
【发布时间】:2012-07-02 08:34:57
【问题描述】:

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

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

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

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

【问题讨论】:

  • 我认为你在这里问的每一个想法都是很有可能的,你有没有尝试过?

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


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-18
    • 2011-08-27
    • 1970-01-01
    • 2011-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多