日期:2014-05-20  浏览次数:21292 次

弱弱的问—linq修改数据
tbArticle art = new tbArticle() { id = 1, title = "修改测试" };
  tbArticle art2= dc.tbArticle.Single(p => p.id == art.id);
  art2.title = art.title;
  dc.SubmitChanges();

这样可以修改成功 如果 把
art2.title = art.title;
改为
art2 = art;

这样修改就没反应,也不报错这是为什么啊!

还有就是大家做大量数据修改是怎么做的啊?谢谢了!!
刚刚接触linq,好多都不懂,希望大家多多帮助!

------解决方案--------------------
tbArticle art = new tbArticle() { id = 1, title = "修改测试" };
tbArticle art2= dc.tbArticle.SingleOrDefault(p => p.id == art.id);
if(art2 !=null)
{
art2.title = art.title;
dc.SubmitChanges();
}

大量数据修改时 使用foreach逐个修改
最后再SubmitChanges();
------解决方案--------------------
探讨
tbArticle art = new tbArticle() { id = 1, title = "修改测试" };
tbArticle art2= dc.tbArticle.Single(p => p.id == art.id);
art2.title = art.title;
dc.SubmitChanges();

这样可以修改成功 如果 把
art2.titl……

------解决方案--------------------
引用类型 浅拷贝,赋值只是复制了引用。
//art2指向 的如 内存1。 
tbArticle art2= dc.tbArticle.Single(p => p.id == art.id);

//能操作内存1
art2.title = art.title;


//art2 指向art的如 内存2,不再指向内存1,操作不了内存1了,跟内存1没关系了。
art2 = art;


------解决方案--------------------
探讨
tbArticle art = new tbArticle() { id = 1, title = "修改测试" };
tbArticle art2= dc.tbArticle.Single(p => p.id == art.id);
art2.title = art.title;
dc.SubmitChanges();

这样可以修改成功 如果 把
art2.title ……