C# で Linq を使用して、データベース内の既存の値を更新しようとしています。
変数をインスタンス化します。
var projectTrackingEntity = context.project_trackings.Single(pt => pt.project_id == projectId);
次に、アクション列を更新します(これはですNVarChar(MAX)
)が、すでにアクションがあるかどうかを確認しています。もしそうなら、私はそれにセミコロンを追加するだけです。アクション1;アクション2
私が電話するとき:
context.SubmitChanges();
デバッグ中に次のエラーが発生します。
System.NotSupportedException: SQL Server は、NText、Text、Xml、または Image データ型の比較を処理しません。
を設定UpdateCheck = UpdateCheck.Never
してみましたが、問題は解決しません。
編集:アクションを更新するコードを追加します(変数「アクション」は文字列です)
var actions = projectTrackingEntity.action.Split(';');
bool equalActions = false;
foreach (string a in actions)
{
if (string.Equals(a, action, StringComparison.CurrentCultureIgnoreCase))
{
equalActions = true;
break;
}
}
if(!equalActions)
{
projectTrackingEntity.action = string.IsNullOrEmpty(projectTrackingEntity.action) ? //if
action : //true
projectTrackingEntity.action + ';' + action; //false
}
context.SubmitChanges();