2011-10-21 10 views
6

私はLINQ to SQLを数年間使用していますが、これは初めての動作です。データベースに空の文字列を含むLINQ to SQLのバグ

空の文字列('')を含むことがあるいくつかの列(varchar(15))を持つDBテーブルがあります。これを確認するにはLEN(Column)を実行し、結果を確認するのは0です。

これをLINQ2SQLから呼び出すと、単一のスペース(string.Length == 1)を含む文字列を含むオブジェクトフィールドが返されます。

データベースにNULLを作成したり、文字列をトリミングしたりするなど、いくつかの回避策がありますが、以前に誰かがこの問題を抱えているか、バグがわかっているかどうかを知りたいと思います(MS Connectで報告) 。もしそうでなければ、私はそれを報告するでしょう。

ありがとうございました。

+0

が、これはNULL値と空の文字列を区別するために起こっているのでしょうか?例:ファイルでは、NULL文字列(ファイルlen = 0)と空文字列(ファイルlen = 0)をどのように格納しますか? OOの世界ではNULL文字列と空文字列は2つの異なるものですが、データワールドでは同じように見えます – Ankur

答えて

8

問題がLEN機能である:SQL Serverで

SELECT LEN(' ') 

0を返します。それはトータルPITAです。

しかし

SELECT DATALENGTH(' ') 

戻り値1

+0

甘いおかげで!私たちのDBの人たちも新しいことを学びました:) – leppie

+0

ちょうど後ろの空白を無視して 'LEN'を追加するだけです。 – leppie

+0

今数ヶ月間私を迷惑にしています! – briantyler

関連する問題