我有一種情況,即按日期從表中提取數據。如果在給定日期沒有提供數據,我使用默認值創建記錄並將其全部顯示給用戶。當用戶完成操作數據時,我需要提交更改。使用Entity Framework提交對數據庫的更改
所以我的問題是我如何處理實體框架提交一個表,哪裏可能有兩個更新並添加需要完成。這是在C#中使用MVC3和實體框架。
那麼這裏就是數據可能看起來像開始,
表A
NAME AGE PHONE_NUM
Jim 25 555-555-5555
Jill 48 555-551-5555
與數據可能看起來像這樣做的用戶之後,
表A
NAME AGE PHONE_NUM
Jim 25 555-555-5555
Jill 28 555-551-5555
Rob 42 555-534-6677
如何提交這些更改?我的問題是有更新和插入需要?
我發現了一些這樣的代碼,但我不知道它是否會在這種情況下工作。
對於添加數據
entities.TABlEA.AddObject(TableOBJECT);
entities.SaveChanges();
或更新數據
entities.TABLEA.Attach(entities.TABLEA.Single(t => t.NAME == TableOBJECT.NAME));
entities.TABLEA.ApplyCurrentValues(TableOBJECT);
entities.SaveChanges();
的行將任何這項工作或做我需要跟蹤什麼有,並加入什麼?
想法?
那麼'Single'和'SingleOrDefault'之間有什麼區別? – Dan
單個檢查查詢是否只有一個結果。如果沒有結果,Single將拋出異常。 SingleOrDefault檢查一個結果,如果查詢是空的,它將返回默認值(大部分時間爲NULL)。因此,當總是有一個結果時使用Single。如果可能根本沒有結果,請使用SingleOrDefault。 –
所以我花了一段時間才能到達我可以使用它的地方,除了增加一個以上的東西,我從數據庫中獲得一個例外,抱怨沒有唯一的密鑰時,這很好。想法? – Dan