XElementを含むテーブルをLinqToSql で生成された定義を使用し、たとえば、
foreach(var x in xlist)
{
x.stringType = "changed";
x.XMLType.Element("elementname").setValue("new element value");
}
context.SubmitChanges();
とした場合、x.stringType は新しい値が設定されるため、更新対象となるが、x.XMLTypeの場合、プロパティ値であるRootエレメントが変わらないため、更新対象とならないようです。
LinqToSqlの出力するソースを書き換えて単純に set の value が異なれば・・・というところを変更すれば解決するわけですが、もっとスマートな解決策はないでしょうか?