2009-09-22 10 views
9

これは疑問ではなく解決策であるため、謝罪していますが、回答を見つけるために多くの検索が必要でしたし、将来のGoogle社員を支援するためのエラーと解決策を提供することで、コミュニティに何かを戻したいと思っていました。SQLサーバーのNText、テキスト、イメージに関するLINQの問題

LINQ to SQLを使用すると、データテーブルに変更(2回目)を送信するときに問題が発生しました。私はすべてがOKです変更に提出する最初の時間は、二度目は私が言ったSQL例外受け取っ変化提出:私はでSubmitChanges()を呼び出したとき

"The text, ntext, and image data types cannot be compared or sorted, 
except when using IS NULL or LIKE operator" 

例外がスローされたのが、理由の遅延読み込みのLINQはRefresh(RefreshMode.KeepCurrentValues、myObject)を呼び出すときに前の行で実際に発生しました。

答えて

10

問題は、リフレッシュモードですべてのフィールドのデータベースバージョンと現在のデータを比較しようとしていることです.SQLはそのような種類の比較テキスト、ntextおよびimage列をサポートしていません(SQL Server 2000 )。

ソリューションは、あなたの列の定義

UpdateCheck = UpdateCheck.Never 

例えばに次の属性を追加することです

[Column(DbType = "NText", CanBeNull = true, UpdateCheck = UpdateCheck.Never)] 

そして、リフレッシュモードはOK作品とのSubmitChangesはそれ以上の問題を持っていません。

+1

またはSQL Server 2005以降を使用している場合は、データ型のままにしておくことは避けてください。画像の代わりに(N)TEXTおよびVARBINARY(MAX)の代わりにVARCHAR(MAX)を使用してください。 –

+0

Ah、どのように私はSQL Server 2005(またはさらに近代的なもの)にすべてをアップグレードできるようにするには長い。残念ながら、将来不可能なSql Server 2000にはまだまだ立ち往生しています! –

+0

あなた自身の問題を修正したので、おそらくこれを答えにする必要があります。 –

関連する問題