我想更新横幅而不更改AuthorId
,而我的DTO不包含AuthorId
,因此当我提交时,该字段的值为空。
我已关注此帖Exclude Property on Update in Entity Framework
我的代码:
public void UpdateBanner(Banner banner)
{
_context.Entry(banner).State = EntityState.Modified;
_context.Entry(banner).Property(x => x.AuthorId).IsModified = false;
try
{
_context.SaveChanges();
}
catch (DbEntityValidationException e)
{
foreach (var eve in e.EntityValidationErrors)
{
Debug.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
eve.Entry.Entity.GetType().Name, eve.Entry.State);
foreach (var ve in eve.ValidationErrors)
{
Debug.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
ve.PropertyName, ve.ErrorMessage);
}
}
throw;
}
}
我收到了这个错误:
AuthorId字段是必需的。
请帮忙!
答案 0 :(得分:0)
错误是不言自明的。
AuthorId字段是必需的。在我看来,通过查看您发布的链接作为参考,您仍然使用主键字段将其标记为false
以进行修改属性,而在链接中,使用了不是主键的字段。
因此,您可能希望检查字段中的差异,如果是主键,那么它将需要一个值。
希望这有帮助。