我有以下問題: 使用表單很容易在數據庫中插入oBject。合併數據上下文外的對象
- 在你從剛剛創建一個對象
- 它鏈接到田間地頭。
- 後回到控制器,
- 創建一個新的datacontext,做datacontext.InsertOnSubmit(對象)
。
public static void AddPage(string lang, Page page)
{
using (var db = new CardReaderDataContext())
{
page.Lang = lang;
page.URL = UrlHelper.CreateValidSeoUrl(page.Name, "-");
db.Pages.InsertOnSubmit(page);
db.SubmitChanges();
}
}
但是,如果你要更新一個對象,它是一個單調乏味的工作。 你做同樣的流量,
- 你得到的對象,
- 它鏈接到您的表單,
- 後它,但後來!!! 因爲它走你的datacontext之外,你必須從DataContext的重新加載對象,
- 傳輸的所有變量,並將其保存, 這是一個有點複雜的解釋讓我舉一個例子:
要更新您的形式修改的對象:
public static void Update(Page page)
{
using (var db = new CardReaderDataContext())
{
var _page = db.Pages.Where(p => p.Guid == page.Guid).Single();
_page.ModificationDate = DateTime.Now;
_page.Title = page.Title;
_page.Description = page.Description;
_page.Content = page.Content;
_page.Keywords = page.Keywords;
_page.Name = page.Name;
_page.WTLang = page.WTLang;
_page.WTSKU = page.WTSKU;
_page.WTTi = page.WTTi;
_page.WTUri = page.WTUri;
_page.URL = UrlHelper.CreateValidSeoUrl(page.Name, "-");
// _page.Order = GetMaxOrderByMenuGuid(page.MenuGuid);
db.SubmitChanges();
}
}
我不知道這是否是清楚的,如果不作評論,我會編輯
是你使用的Linq-to-SQL嗎?什麼是你的問題,順便說一句? – Yakimych 2010-07-29 11:01:43
是linq-to-sql,我的問題是,是否有更簡單的方法來合併這些對象的更新,而不是每個值,將新值複製到從數據庫檢索到的對象。現在你要做的是:從數據庫檢索對象,修改值,檢索相同的對象,將每個值存儲到最後檢索的對象,更新 – Nealv 2010-07-29 11:28:57
hmmm是我的問題不清楚,或者只是沒有答案 – Nealv 2010-07-29 13:49:32