我正在構建移動MVC應用程序,偶然發現了很多問題,但這讓我感到非常沮喪。是否有可能更新保存在ObjectContext中的對象以便重用而不保存到數據庫?
這是一個Message類即時reffering到:
public class Message
{
public int MessageID { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public DateTime Recieved { get; set; }
[ForeignKey("User")]
public int AuthorUserID { get; set; }
//P\\ Navigation properties
public virtual ICollection<MessageRecipient> MessageRecipients { get; set; }
public virtual User User { get; set; }
}
我創建了新的消息對象並將其保存在數據庫中。
messageService.AddMessage(newMessage);
Message freshMessage = messageService.GetNewestMessage();
此時它沒有附加收件人。用戶獲取重定向到一個視圖,他可以將收件人添加到消息中。
當用戶添加收件人時,我通過創建MessageRecipient對象的ajax調用方法,並將其添加到郵件的收件人集合中。
message.MessageRecipients.Add(recipient);
理想的情況是:當用戶完成添加收件人並返回到編輯視圖時,添加的收件人是可見的。
當編輯動作被調用getMessage方法被調用
Message message = messageService.GetMessage(id);
因爲在此之前,將在ObjectContext中舉行這個消息已經被檢索,因此EF將成爲我的記憶,而不是查詢數據庫實體爲新鮮的,這是我想要發生的事情。我不知道如何通過調用SaveChanges()來保存對ObjectContext的更改,而不保存對Db的更改。
所以我的問題是:有沒有辦法改變存儲器中保存的實體的狀態,所以下一次查詢它時,我得到了實體與我所做的更改?
我只想與對象一起工作,並在完成它時將其保存到Db,而不是每次用戶將收件人添加到消息時都去Db旅行。
我是新來.NET和EF ...
任何幫助,將不勝感激。
通過「Mobile MVC」你的意思是什麼?它是移動設備上的有狀態客戶端,還是移動設備使用的Web應用程序? – 2012-03-14 14:54:07
我的意思是移動設備使用的MVC網絡應用程序 – Pawel 2012-03-14 14:58:54