[英]How to set null value to an existing attribute on Entity Framework
設想:
我有一個帶有(可為空的)FK Id
的實體,不再需要它。
問題:
當我在上下文中更新此實體時,將NULL
設置為 FK,在SaveChanges()
之后,該值不會保留在數據庫上。
有任何想法嗎?
編輯#1:
在SaveChanges
,我檢查了基數並繼續使用舊值,如果我更改為其他值工作正常。
班級:
public class Account
{
[Required]
public int Id { get; set; }
public int? PlanId { get; set; }
[Required]
public virtual Status Status { get; set; }
#region Navigations Properties
public virtual Plan Plan { get; set; }
#endregion
}
用法:(問題)
Account ent = Context.Set<Account>().AsQueryable().FirstOrDefault(x => x.Id = id);
ent.PlanId = null;
Context.SaveChanges();
編輯 [問題已解決]
有必要發送一個數組,其中的字段將作為新值獲得 null。
public virtual void Update(TEntity entityToUpdate, List<string> updateNullFields)
{
DbSet.Attach(entityToUpdate);
foreach (var item in updateNullFields)
{
Context.Entry(entityToUpdate).Property(item).IsModified = true;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.