我想設置的外鍵「空」 ..使用SQL Management Studio中它工作正常,但使用C#嘗試它,我得到一個例外:C#MVC EF - 將外鍵設置爲NULL?
例外:
價值不能爲空。參數名稱:實體。
代碼:
var entity = _db.AlleBenutzer.FirstOrDefault(p => p.Id == id);
if (entity != null)
{
var abteilungObjekt = _db.AlleAbteilungen.FirstOrDefault(p => p.Abteilungsname == abteilung);
var etageObjekt = _db.AlleEtagen.Include(p => p.Abteilung).FirstOrDefault(p => p.Etagenname == etage);
entity.Abteilung = abteilungObjekt;
entity.Etage = etageObjekt;
_db.Entry(entity.Abteilung).State = EntityState.Modified;
_db.Entry(entity.Etage).State = EntityState.Modified;
_db.Entry(entity).State = EntityState.Modified;
_db.SaveChanges();
}
我的兩個模型看起來像:(切幾片)
public class Benutzer
{
public int Id { get; set; }
public Abteilung Abteilung { get; set; }
public Etage Etage { get; set; }
}
public class Abteilung
{
public int Id { get; set; }
public string Abteilungsname { get; set; }
}
誰能幫助我嗎?如何修改我的模型以使我的外鍵可以爲空?感謝提前:)
看着你的代碼和錯誤消息,似乎abteilungObjekt或etageObjekt是空的,所以當你使用_db.Entry(entity.Abteilung).State或下一個語句是什麼導致錯誤。 – 2013-03-14 11:25:20
是的,沒錯,但它必須是空的。我想將它設置爲null – Jannik 2013-03-14 11:48:32