【发布时间】:2010-02-06 20:48:32
【问题描述】:
我有一个有两个 fk 的实体。我一直在尝试向数据库插入一条记录,但没有成功。这是我使用的方法:
valuePaymentBetToAdd.BetType = db.BetTypes.First(betType => betType.Id == valuePaymentBetToAdd.BetType.Id);
valuePaymentBetToAdd.Lottery = db.Lotteries.First(lotto => lotto.Id == valuePaymentBetToAdd.Lottery.Id);
在这种情况下,第二个对象被分配,但在调用 SaveChanges 方法时,我收到一个错误,指出 Lottery 对象的属性为空。
valuePaymentBetToAdd.BetTypeReference.EntityKey = new EntityKey(db.DefaultContainerName + ".BetType", "Id", valuePaymentBetToAdd.BetType.Id);
valuePaymentBetToAdd.LotteryReference.EntityKey = new EntityKey(db.DefaultContainerName + ".Lottery", "Id", valuePaymentBetToAdd.Lottery.Id);
在这种情况下,我得到另一个奇怪的错误。当对象被添加到集合中时。
无法添加或附加该对象,因为其 EntityReference 的 EntityKey 属性值与该对象的 EntityKey 不匹配。
在这种情况下我错过了什么吗?
【问题讨论】:
-
请显示您用于插入的完整代码,而不仅仅是这两行。你展示的两种方法都很好。您的错误在其他地方。我的疯狂猜测是您使用了多个 ObjectContext,但如果不看代码就很难判断。
标签: entity-framework orm