[英]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.