我想在我的數據庫中使用Linq在C#中的現有值進行更新。更新與Linq導致錯誤的NVarChar(MAX)列
我實例變量:
var projectTrackingEntity = context.project_trackings.Single(pt => pt.project_id == projectId);
然後我更新的動作列(它是一個NVarChar(MAX)
),但我檢查,如果它已經有一個動作。如果是這樣,我只是用分號加上它,例如。動作1,動作2
當我打電話:
context.SubmitChanges();
我得到這個錯誤,而調試:
System.NotSupportedException:SQL Server不處理的比較 NTEXT,文本,XML,或圖像數據類型。
我試過設置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();
你確定sql server中的列是nvarchar而不是ntext,因爲錯誤提示? – Dan 2013-02-14 17:39:48
我自己添加了列,它確實是一個nvarchar(MAX) – 2013-02-14 18:29:30