【问题标题】:Entity Framework 4.1: many-to-many with the same object in collectionEntity Framework 4.1:多对多与集合中的相同对象
【发布时间】:2011-08-09 15:17:55
【问题描述】:

我有一个具有多对多关系的模型。

我也有 object1object2 实体。 Object1 有一个ICollection<Object2> 属性。 Object2 有一个ICollection<Object1>

问题在于 Object1 可能有多个具有相同键 (Id) 的 Object2。我的意思是ICollection<Object2> 可能有{Id=1, Id=2, Id=1, Id=3... etc} 对象是可能的情况。 然后我只调用 SaveChanges {Id=1, Id=2, Id=3} 保存在数据库中。如何以多对多关系保存多个 Object1 实例的相同对象?

【问题讨论】:

  • 同一实体的多个对象如何拥有相同的 ID?每个对象的键应该是唯一的。
  • 为什么不呢?例如,我想在我的属性集合中拥有多个对象的副本。 (例如,想象一下菜单顺序。您有菜单项,也有订单。您可以在一个订单中订购两份(菜单项“股份”))
  • 是的,这是有道理的。但是我认为您仍然应该有另一个ID来区分这两个“赌注”。所以你有两个ID。一个唯一的 (ItemId),一个不唯一的 (ItemTypeID)。这将使您更容易跟踪和保存。

标签: c# entity-framework entity-framework-4.1


【解决方案1】:

不幸的是,您需要在中间使用两个一对多集合和一个关联对象来执行此操作,例如Object1Object2Assoc。该对象还需要一个 Count 属性来表示它在集合中的顺序和/或一个 Id 属性来将自己与其他类似的关联区分开来。

【讨论】:

  • 明白了。我认为这是一个解决方案。
猜你喜欢
  • 2012-10-20
  • 2011-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多