0
我想我已經閱讀了關於此的每篇文章和堆棧溢出問題,但無法找到解決方案。讓我開始了我的模特在實體框架4.1中更新FK關係
public class Entry
{
public Entry()
{
DateEntered = DateTime.Now;
}
public int Id { get; set; }
[Required]
public string FirstName { get; set; }
[Required]
public string LastName { get; set; }
[Required]
public string Email { get; set; }
public string Number { get; set; }
public string FbId { get; set; }
[ReadOnly(true)]
public DateTime DateEntered { get; set; }
public string AccessToken { get; set; }
//Relationsips
public Backgrounds Background { get; set; }
public Cars Car { get; set; }
}
public class Backgrounds
{
public int Id { get; set; }
public string Name { get; set; }
public string Filename { get; set; }
}
public class Cars
{
public int Id { get; set; }
public string Name { get; set; }
public string FileName { get; set; }
}
現在在我的控制,我更新的條目。像如下
// PUT /api/entries/5
public HttpResponseMessage Put(Entry entry)
{
if(ModelState.IsValid)
{
_db.Entries.Attach(entry);
_db.Entry(entry).State = EntityState.Modified;
_db.SaveChanges();
return new HttpResponseMessage(HttpStatusCode.NoContent);
}
throw new HttpResponseException(HttpStatusCode.BadRequest);
}
我的入門型號得到正確更新,但如果如entry.Background.Name的變化,這將不會被持久化到數據庫中。我的控制器正在接受整個條目模型,包括其關係=>背景和汽車。但是,更改爲關係的任何值都不會更新或反映。任何優雅的解決方案,而不必查詢數據庫然後更新?我不想在更新之前進行任何額外的查詢或查找。
感謝
泰隆