[英]Entity framework - multiple composition to same class
TL; DR
我希望使用不同的方式將使用Entity Framework的多個合成映射到同一個類,該組件具有對作曲家的單個外鍵,或在兩者之間有一個表。
正確的解釋
我正在使用Enterprise Architect設計一些代碼。 感興趣的類的UML如下所示:
用C#生成的代碼是
public class A
{
public int id { get; set; }
public List<B> foo { get; set; }
public List<B> bar { get; set; }
}
public class B
{
public int id { get; set; }
// fields...
}
大! 那就是我想要的。 但是,我的Entity Framework代碼優先方法(無法更改,已經在項目中使用了多年)創建的遷移與我希望的完全不一樣。
A是僅包含其字段的表(在示例中,為id)。 B如下:
| id | field1 | field2 | A_ID1 | A_ID2 |
很好,它可以工作,但是問題是,在實際情況下,我對多個類有大約十種成分。 B的相同實例永遠不會在多個類之間共享。 結果是這樣的表
| id | field1 | field2 | A_ID1 | A_ID2 |
| 1 | .. | .. | 1 | null |
| 2 | .. | .. | 2 | null |
| 2 | .. | .. | null | 3 |
即每行只有一個外鍵(並且我重復一遍,因為這是我最困擾的問題,有很多外鍵)不為空,所有其他為空。
您對改善這種映射有什么建議嗎? 我正在使用的工具是
企業架構師<->實體框架<-> EF代碼優先遷移
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.