簡體   English   中英

更新記錄時ASP.NET排除屬性-實體框架

[英]ASP.NET exclude property when updating record - Entity Framework

我想更新橫幅而不更改AuthorId ,並且我的DTO不包含AuthorId因此我提交時該字段為空值。

我已經按照這篇文章在實體框架中排除更新屬性

我的代碼:

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字段為必填。

請幫忙 !

該錯誤不言自明。

AuthorId字段為必填。 在我看來,通過查看作為參考發布的鏈接,您仍在使用主鍵字段將其標記為Modified屬性為false ,而在鏈接中,使用了不是主鍵的字段。

因此,您可能想檢查字段中的差異,如果它是主鍵,那么它將需要一個值。

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM