我有一個Listview
對象。
當我從Listview
中選擇一個項目時,我需要知道Listview
的selectedObject
是否已被修改爲激活或不是saveButton
。EF:檢查對象是否已被修改
這是我開始瞭如何使用Mvvmlight和Entity Framework 5:
public RelayCommand SaveObjectCommand { get; set; }
public MainViewModel()
{
SaveObjectCommand = new RelayCommand(SaveObject, CanSaveObject);
}
private bool CanSaveObject()
{
using (DBContext ctx = new DBContext())
{
//selectedObject is the object selected from the Listview
Object dbObject = ctx.Object.Single(x => x.ID == selectedObject.ID);
if (selectedObject == dbObject) //simplified
return false;
}
}
這是工作,但它是相當緩慢的。
其實每個我選擇從列表視圖對象時,我請求DB知道selectedObject
等於在DB同一對象(我的方式知道如果selectedObject性能已被修改)
是否有更好的方法來做到這一點?
我聽說過DBContext.ChangeTracker,但它似乎需要一個DB請求。
什麼時候發生變化纔會被修改?當它在UI上被持續或修改時,或者是什麼?當其中一個屬性在實際對象上被修改時?每選擇一次數據庫都不是一個好主意。 –
我認爲這不是一個好主意,這是我的問題:)。 我有我可以修改selectedObject屬性的文本框 – anthoLB29