C# 实体框架4.1:集合中具有相同对象的多对多
我有一个多对多关系的模型 我还有C# 实体框架4.1:集合中具有相同对象的多对多,c#,entity-framework,entity-framework-4.1,C#,Entity Framework,Entity Framework 4.1,我有一个多对多关系的模型 我还有object1和object2实体。Object1有一个ICollection属性。Object2有一个ICollection 问题是Object1可能有多个具有相同密钥(Id)的Object2。我的意思是,ICollection可能有{Id=1,Id=2,Id=1,Id=3…等}对象。 然后我调用SaveChanges,只有{Id=1,Id=2,Id=3}保存在数据库中。如何在多对多关系中保存许多对象Obje1实例?< P>不幸的是,您需要用21到多个集合和中间
object1
和object2
实体。Object1有一个ICollection
属性。Object2有一个ICollection
问题是Object1可能有多个具有相同密钥(Id)的Object2。我的意思是,ICollection
可能有{Id=1,Id=2,Id=1,Id=3…等}
对象。
然后我调用SaveChanges,只有
{Id=1,Id=2,Id=3}
保存在数据库中。如何在多对多关系中保存许多对象Obje1实例?< P>不幸的是,您需要用21到多个集合和中间的关联对象来实现这一点,例如<代码> Objt1Objt2AsSOC/。此对象还需要一个Count
属性来表示其在集合中的顺序,和/或一个Id属性来区别于其他类似的关联。对于同一实体的多个对象,如何具有相同的Id?每个对象的键应该是唯一的。为什么不呢?例如,我希望在我的属性集合中有多个对象副本。(例如,想象一下菜单顺序。你有菜单项,你有订单。你可以在一个订单上订购两个木桩(菜单项“木桩”)是的,这是有道理的。但我认为你还应该有另一个身份证来区分这两个“赌注”。所以你有两个身份证。一个唯一(ItemId),一个不唯一(ItemTypeID)。这将使你更容易跟踪和保存。明白你的想法了。我认为这是一个解决办法。