实体框架导航属性表在不同分贝
问题描述:
我有不同分贝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”。字首?
答
实体框架不支持单个上下文中的多个数据库。但它支持单个数据库中的多个模式。如果您没有指定模式,它将假定为dbo
。
[Table("Towns", "MySchema")]
public class Town
您可以像上面那样指定模式。
如果您想在不同的数据库中使用表格,您可以在数据库中为该表格创建一个视图。但它只会被读取。
答
不幸的是,EF4不支持其他数据库中的导航属性。 你有两种选择。
一,创建一个存储过程并将其作为函数导入到edm中。并为返回结果生成复杂类型。
二,为每个数据库创建两个实体模型。然后对数据库运行查询,然后使用第一个查询结果中的where子句将另一个查询运行到另一个数据库。