2011-09-23 94 views
0

我有不同分贝2个表实体框架导航属性表在不同分贝

db1..Towns 
    id 
    Nazv 

db2..MathchedTown 
    id 
    t_id 
    d_name 

它们由поTowns.id = MathchedTown.t_id 该EF类接合当我尝试获取item.town.nazv时出现错误: 无效的对象名称'dbo.Towns'。 如果我将[Table(“Towns”)]更改为[Table(“db1.dbo.Towns”)],则会出现几乎相同的错误:无效的对象名称'dbo.db1.dbo.Towns'。

所有错误都SQLException的

我怎么能说话EF4不substite的“DBO”。字首?

回答

0

实体框架不支持单个上下文中的多个数据库。但它支持单个数据库中的多个模式。如果您没有指定模式,它将假定为dbo

[Table("Towns", "MySchema")] 
public class Town 

您可以像上面那样指定模式。

如果您想在不同的数据库中使用表格,您可以在数据库中为该表格创建一个视图。但它只会被读取。

0

不幸的是,EF4不支持其他数据库中的导航属性。 你有两种选择。

一,创建一个存储过程并将其作为函数导入到edm中。并为返回结果生成复杂类型。

二,为每个数据库创建两个实体模型。然后对数据库运行查询,然后使用第一个查询结果中的where子句将另一个查询运行到另一个数据库。