gpt4 book ai didi

entity-framework-4 - Entity Framework 不会将外键值更新为null

转载 作者:行者123 更新时间:2023-12-04 07:53:19 25 4
gpt4 key购买 nike

我无法在我的Entity Framework 4.3代码优先数据库中获取要更新为null的外键。

我的 View 模型:

public class AccountViewModel
{
public int Id { get; set; }
public int? CorporationId { get; set; }
public CorporationModel Corporation { get; set; }
}

var corporation = db.Corporation.Where(x => x.Id == model.CorporationId).FirstOrDefault(); // shows as null
account.Corporation = corporation; // sets the value to null

db.Entry(account).State = EntityState.Modified;
db.SaveChanges(); // does not save the null value in the FK field!!!

任何帮助将不胜感激。

最佳答案

您必须将外键属性设置为null。将状态设置为Modified仅会影响标量属性(外键属性是其中之一,但导航属性则不受影响):

account.CorporationId = null;

db.Entry(account).State = EntityState.Modified;
db.SaveChanges();

如果您在 Account上没有外键属性,则必须加载包括公司在内的帐户:

var account = db.Account.Include(a => a.Corporation)
.Where(a => a.Id == accountId)
.SingleOrDefault();

if (account != null)
{
account.Corporation = null;
db.SaveChanges();
}

关于entity-framework-4 - Entity Framework 不会将外键值更新为null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10934764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com