我有一個實體有兩個fk's。我一直試圖向數據庫插入一條記錄而沒有成功。這是我所使用的方法:第二個對象被分配又是實體框架和FK問題
valuePaymentBetToAdd.BetType = db.BetTypes.First(betType => betType.Id == valuePaymentBetToAdd.BetType.Id);
valuePaymentBetToAdd.Lottery = db.Lotteries.First(lotto => lotto.Id == valuePaymentBetToAdd.Lottery.Id);
在這種情況下,但在調用SaveChanges方法時,我得到一個錯誤,指出彩民對象的屬性都爲空的。
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屬性值。
我在這種情況下錯過了什麼嗎?
請出示你使用插入,而不只是這兩行的全部代碼。你展示的兩種方法都很好。你的bug在別的地方。我瘋狂的猜測是你使用了多個ObjectContexts,但是很難說沒有看到代碼。 – 2010-02-08 14:30:29