Linq to sql 强制LinqToSql提交 < >如何强制LIQOTQQL DATACONTRONT考虑一个脏的属性并提交给数据库?< /P>
在我的例子中,属性是XElement,它会被修改,但DataContext不会捕获它,因为实际引用保持不变 我想我可以尝试分配属性null或new-XElement,然后将其分配回原始的XElement。这是最好的解决方案吗Linq to sql 强制LinqToSql提交 < >如何强制LIQOTQQL DATACONTRONT考虑一个脏的属性并提交给数据库?< /P>,linq-to-sql,Linq To Sql,在我的例子中,属性是XElement,它会被修改,但DataContext不会捕获它,因为实际引用保持不变 我想我可以尝试分配属性null或new-XElement,然后将其分配回原始的XElement。这是最好的解决方案吗 修改XElement子项后,我将调用SubmitChanges。您可能需要使用附加(object,true)告诉DataContext您要保存的版本。然后您可以从那里调用SubmitChanges()。我还没有找到强制实体上的属性变脏的方法。从LinqToSql代码中挖掘出
修改XElement子项后,我将调用SubmitChanges。您可能需要使用
附加(object,true)
告诉DataContext您要保存的版本。然后您可以从那里调用SubmitChanges()
。我还没有找到强制实体上的属性变脏的方法。从LinqToSql代码中挖掘出来,似乎旧值被跟踪,然后与新值进行比较,因此通常必须使用Attach,或者当前对象必须被clonned以创建新引用
我通过自定义table类解决了XElement的问题。更改XElement后,我只需基于旧元素创建新XElement:
partial class Table
{
partial void OnLoaded()
{
if( XmlData != null )
{
XmlData.Changed += this.XmlData_Changed;
}
}
private void XmlData_Changed( object sender, XObjectChangeEventArgs e )
{
this.ModifiedCardData = new XElement( this.XmlData );
}
}
但我不想强迫整个实体屈服。只是修改的属性的一部分。