4
讓我們假設我有以下代碼:LINQ到實體:添加對象不保存更改
TEModule teModule = Context.TEModules.Where(module => module.EnumValue.Equals(text.ModuleName)).FirstOrDefault();
if (teModule == null)
{
teModule = new TEModule();
teModule.EnumValue = text.ModuleName;
Context.TEModules.AddObject(teModule);
//Context.SaveChanges();
TEModule aux = Context.TEModules.Where(module => module.EnumValue.Equals(teModule.ModuleName)).FirstOrDefault();
}
我的問題是,如果我把「的SaveChanges」評論,然後在接下來的查詢AUX對象始終爲空,因爲Context.TEModules爲空,即使我稱之爲「AddObject」的方法。 但是,如果我在AddObject之後調用SaveChanges,則在下一個查詢中,aux對象不爲null。問題是我不想經常調用SaveChanges,因爲這不是我添加對象的唯一代碼,如果我這樣做,性能會下降。
所以問題是:我必須在每次AddObject調用後調用SaveChanges,如果以後我需要知道該對象是否已經存在?
那麼修改後的對象有什麼用?假設我搜索「Enumvalue」字段,並且它從數據庫返回一個對象。我修改了EnumValue,後來我進行了搜索以找到修改的對象。如果SaveChanges尚未被調用,它是否會再次返回空值?它沒有任何意義,因爲每次修改,插入或刪除任何對象時,我都必須調用SaveChanges ... – DarthRoman