我正在尝试使用 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();