2013-06-05 45 views
2

我有兩個表:如何使用非DB-物業實體框架中的部分類對關聯

------Product----- 
| ProductID (key)| 
| DescricptionID | 
|----------------| 

---Description---------- 
| DescriptionType (key)| 
| DescriptionID (key)| 
| LanguageID  (key)| 
| Description   | 
|----------------------| 

,如果我想ProductsDescription之間建立在*.edmx文件一個新的關聯,我必須爲表Description中的每個主鍵指定Dependent Properties。所以我爲此創建了一個新的Partial類。
例如:

public partial class Product 
    { 
     public int DescriptionType 
     { 
      get { return 1; } 

      set { this.DescriptionType = 1; } 
     } 

     public string LanguageID 
     { 
      get { return "EN"; } 

      set { this.LanguageID = "EN"; } 
     } 
    } 

現在的問題是以下幾點:怎麼可能看到這個新特性在我*.edmx文件在一個新的協會這兩個表之間選擇那些爲Dependent Properties
我知道數據庫的設計不正確,但沒有可能改變這一點。那麼是否有另一個解決我的問題的方法?

+0

你的屬性setter具有無限遞歸,並且會用'StackOverflowException'爆炸。 – hvd

回答

-1

您不能以這種方式創建和關聯部分類。

您可以在EDMX編輯器中創建關聯。

你可以嘗試也以首先使用EF代碼和部分類使用DbSet,但我從來沒有嘗試過

(也許是一個愚蠢的問題...但如果你需要的關係,你爲什麼不添加它在DB上)

+0

因爲像我之前提到的那樣,我不允許更改數據庫。有幾十個其他程序連接到相同的數據庫 –

+0

對不起,沒有讀過最後2行。 所以唯一的解決辦法是編輯EDMX來創建關聯。 EDMX不是數據庫,因此您可以創建關聯,EF將通過連接或其他方式查詢數據庫。 如果您不能修改EDMX,我認爲您不可能有機會擁有一個關聯記錄更改併爲您加載數據的工作。 –