日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

LINQ to SQL: DataContext.SubmitChanges() 失效问题

發布時間:2024/9/5 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LINQ to SQL: DataContext.SubmitChanges() 失效问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

當 DataContext (及其繼承類) 的 ObjectTrackingEnabled? = True(默認值)時:

1.如果用 DataContext 取出了某類(Tables)的實例對象,例如調用了First, FirstOrDefault, All, Last, LastOrDefault,...

2.那么,只要你對該對象的任何屬性(Property) 進行了賦值操作,DataContext 就自動跟蹤到這個動作。

3.此后,一旦調用 SubmitChanges() 就將這些改變保存到數據庫中去。

?

但是很不幸的是,DataContext 對對象賦值操作復制操作卻視而不見。

?

例如:

1.以下代碼,將程序執行更新操作時(在代碼中有Mark標記的分支),其后的dc.SubmitChanges()不會工作。

SimboxDataContext dc = new SimboxDataContext();
aspnet_User u = dc.aspnet_Users.First(c=>c.UserName==User.Identity.Name);

Messenger newMessenger = new Messenger();
newMessenger.UserID = u.UserId;
newMessenger.CurrentFlag = chkCurrentFlag.Checked;
int nTransmitLimit = 0;
int.TryParse(txtTransmitLimit.Text, out nTransmitLimit);
newMessenger.TransmitLimit = nTransmitLimit;
newMessenger.ModifiedDate = DateTime.Now;

Messenger originalMessenger = dc.Messengers.FirstOrDefault(c => c.UserID == u.UserId);

if (originalMessenger == null)
{
??? dc.Messengers.InsertOnSubmit(newMessenger);
}
else
{
??? originalMessenger = newMessenger; // Mark
}

dc.SubmitChanges();

?

2.必須將:

originalMessenger = newMessenger; // Mark

替換為:

//originalMessenger = newMessenger;
//originalMessenger.UserID = u.UserId;
originalMessenger.CurrentFlag = newMessenger.CurrentFlag;
originalMessenger.TransmitLimit = newMessenger.TransmitLimit;
originalMessenger.ModifiedDate = newMessenger.ModifiedDate;

?

我認為這個問題的影響不可小覷,因為,當我們將數據處理移去DAL(Data Access Lay),將這種業務邏輯移去BLL (Business Logic Layer) 后,傳來傳去的數據都是這種封裝后的對象。

偶正在探尋能夠解決或回避這個問題的方案,如有資料請Comment給我,謝謝先^_^

轉載于:https://www.cnblogs.com/SoulStore/archive/2008/11/27/1342320.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的LINQ to SQL: DataContext.SubmitChanges() 失效问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。