2011-03-24 64 views
2
/// <summary> 
/// Deletes all data records associated with a data record ID 
/// </summary> 
/// <param name="DataID">Data ID record</param> 
public static void DeleteDataLabels(int DataId) 
{ 
    using (var dc = new ArtworkingDataContext()) 
    { 
     // Delete associated datalabels 
     var q = dc.tblArtworkDataLabels.Where(c => c.dataID == DataId); 

     if (q.Count() != 0) 
     { 
      dc.tblArtworkDataLabels.DeleteAllOnSubmit(q); 
      dc.SubmitChanges(); 
     } 
    } 
} 

如果沒有記錄在數據庫中刪除,它拋出:LINQ刪除錯誤(C#)

異常詳細信息: System.Data.SqlClient.SqlException: 文本,ntext和圖像數據類型 無法進行比較或排序,但使用IS NULL或LIKE運算符時除 以外。

dc.SubmitChanges();

有點困惑這一個!

+0

您可以更改和更新的一個?聽起來像是你的綁定屬性中的錯誤。 – 2011-03-24 13:00:05

+0

您的dataId列是文本/ ntext列嗎? – Tejs 2011-03-24 13:02:33

+0

這看起來類似於你的問題:[linq-problems-with-ntext-text-and-image-on-sql-server](http://stackoverflow.com/questions/1460251/linq-problems-with-ntext-文本和圖像在SQL服務器) – firefox1986 2011-03-24 13:02:15

回答

2

我現在可能聽起來很荒謬,但最近我的問題完全一樣,而且我的研究表明我刪除了我的dbml中的表並將其拖入並猜測它是什麼,它的固定!因此請嘗試刪除您的tblArtworkDataLabels並重新創建它。

我不知道是否我的變化導致模型和我的數據庫之間不同步,或者它純粹是VS問題。

+0

謝謝,這工作!奇怪的。這很煩人,因爲我知道必須將所有關聯重新添加到圖中 – 2011-03-24 13:05:42

2

也許你的DBML文件不再是最新的?

除此之外,你應該剖析發送到數據庫的SQL,這樣你就可以看到真正發生了什麼。

3

嘗試冒犯列在ColumnAttribute S設定UpdateCheckNever

[Column(..., UpdateCheck = UpdateCheck.Never)]