老朱的博客

关于Linq to sql的一个更新问题

最新也开始研究linq to sql,但随着深入,发现无论是国外还是国内文档还是很少,估计随后一段时间文档会多起来。
现在有一个更新问题。
先从Datacontext中得到一个实体丢出去,然后对这个实体进行更新,测试了很长时间没有发现好的方式。
        public Page SavePage(Page page)
        
{
            DataContext dxt 
= new DataContext("server=.;database=xxx");
            dxt.GetTable
<Page>().Attach(page);
            
            dxt.SubmitChanges();           
            
return page;
        
        }
其中page从丢出去后已经变化了,但SubmitChanges()后没有更新数据库。
试了很久都不行,最终采用这样的方式可以。
        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是上面函数的实例

上面代码的更新可以成功的。
难道对于一个对象的更新会这么复杂?大家有没有更简单的方法?

posted on 2007-07-31 10:04  Axel  阅读(3031)  评论(23编辑  收藏  举报

导航