我非常需要你的帮助。我想更新在另一个datacontext中创建的对象; 这是我的代码。 Insert语句运行良好但我无法编写更新代码
var dataContext = new ReconNewDataContext();
if (Id == 0)
{
var item = this;
dataContext.RequestIO.InsertOnSubmit(item);
dataContext.SubmitChanges();
Id = item.Id;
}
else
{
var item = this;
//update object
}
我读过 Linq2SQL: Update object not created in datacontext
我试过使用.Attach(this).Attach(this,true).Attach(this,oldObjectFromBase)但总是出错。
我知道我可以从数据库中获取对象并手动从修改后的对象传输数据,但会有新字段。这意味着我必须始终在Save()方法中附加这些新字段。
是否有任何“漂亮”方法来更新在另一个datacontext中创建的对象?
答案 0 :(得分:0)
查看此文章:http://omaralzabir.com/linq_to_sql__how_to_attach_object_to_a_different_data_context/
此外,在您的示例中,要进行更新,请尝试执行以下操作:
var item = new ObjectBeingUpdated();
//copy over properties from old object to new object, make sure pk's match
//Attach this new object
我相信我的同事也有类似的事情。
更新:请查看此处以获取有关附件的更多信息:http://blogs.msdn.com/b/dinesh.kulkarni/archive/2007/10/08/attach-if-you-have-something-detached.aspx
答案 1 :(得分:0)
您可以使用以下模式: