我有以下问题: 使用表单在数据库中插入oBject很容易。
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();
}
}
但是如果你想更新一个对象,这是一项繁琐的工作。 你做同样的流程,
更新您在表单中修改的对象:
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();
}
}
我不知道是否清楚,如果不是评论我,我会编辑
答案 0 :(得分:1)
我认为您正在寻找DataContext.Attach,但您只能将其用于已经序列化/反序列化的linqtosql对象。
“甚至也不是一个好主意 尝试获取旧版本。通过 这样做你实际上转向 关闭乐观并发,所以除非 你打算这是一个坏人 做法。你需要做的是 往返既有原始状态又有 对象的当前状态。“