我想设置的外键“空” ..使用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