关于Linq to sql的一个更新问题
最新也开始研究linq to sql,但随着深入,发现无论是国外还是国内文档还是很少,估计随后一段时间文档会多起来。
现在有一个更新问题。
先从Datacontext中得到一个实体丢出去,然后对这个实体进行更新,测试了很长时间没有发现好的方式。
试了很久都不行,最终采用这样的方式可以。
上面代码的更新可以成功的。
难道对于一个对象的更新会这么复杂?大家有没有更简单的方法?
现在有一个更新问题。
先从Datacontext中得到一个实体丢出去,然后对这个实体进行更新,测试了很长时间没有发现好的方式。
public Page SavePage(Page page)
{
DataContext dxt = new DataContext("server=.;database=xxx");
dxt.GetTable<Page>().Attach(page);
dxt.SubmitChanges();
return page;
}
其中page从丢出去后已经变化了,但SubmitChanges()后没有更新数据库。{
DataContext dxt = new DataContext("server=.;database=xxx");
dxt.GetTable<Page>().Attach(page);
dxt.SubmitChanges();
return page;
}
试了很久都不行,最终采用这样的方式可以。
public void SavePage<T>(T obj, Action<T> update) where T:class
{
DataContext dxt = new DataContext("server=.;database=giga");
dxt.GetTable<T>().Attach(obj);
//dxt.GetTable<T>().Attach(obj);
update(obj);
dxt.SubmitChanges();
}
//调用
dataAccess.Update<Page>(page, delegate(Page p)
{
p.PageTitle = "aaa";
});
//dataAccess是上面函数的实例
{
DataContext dxt = new DataContext("server=.;database=giga");
dxt.GetTable<T>().Attach(obj);
//dxt.GetTable<T>().Attach(obj);
update(obj);
dxt.SubmitChanges();
}
//调用
dataAccess.Update<Page>(page, delegate(Page p)
{
p.PageTitle = "aaa";
});
//dataAccess是上面函数的实例
上面代码的更新可以成功的。
难道对于一个对象的更新会这么复杂?大家有没有更简单的方法?