2011-09-23 99 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子句將另一個查詢運行到另一個數據庫。