【问题标题】:conflit key On EntityFramework code firsrconflit key 实体框架代码优先
【发布时间】:2012-05-31 22:08:17
【问题描述】:

嗨,我在 EF 上的键有问题,我有包含与其他类 (messag) 有关系(一对多)的类(timelineitem),buzztimelineitem 不能包含属性(messagid)和导航属性(messag),当我创建新的时间线项并尝试这样做:

     timeline.BuzzMessageId = listid.BuzzMessageId

我有异常告诉我与表消息冲突,当我尝试这样做时:

     timeline.BuzzMessage = list_msg[i]; (list_msg list of messag )     

我在表messag中有新行,具有相同的属性但不同的messagid,你能告诉我这是怎么回事;

【问题讨论】:

  • 究竟是什么异常?数据库中是否存在带有提供的BuzzMessageId 的消息?
  • 是的 BuzzMessageId 存在于数据库中,我认为问题在于 list_msg 中的 msg 在时间轴的相同上下文中,你知道怎么做吗?请注意,我使用模式存储库和单元 f 工作!谢谢

标签: entity-framework code-first foreign-key-relationship


【解决方案1】:

您可以尝试将list_msg[i] 附加到上下文中,这可能会解决在消息表中创建新行的问题:

context.Messages.Attach(list_msg[i]);
timeline.BuzzMessage = list_msg[i];

【讨论】:

  • 感谢 Slauma 先生,但正如我所说,我使用存储库模式,所以我无法直接访问上下文!!
  • @ucef:然后只需创建一个可以访问上下文并调用repo.AttachToMessages(...) 或其他东西的存储库方法。
猜你喜欢
  • 1970-01-01
  • 2017-09-01
  • 2014-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-29
  • 2012-12-30
  • 2015-04-09
相关资源
最近更新 更多