varchar(1) NULL
フィールドで定義されたSQL Serverテーブルを考えます。性別を保存するために使用されています。一部の行にはデータが含まれています。与えられた空白はnullsであるべきであるが、空白はここで有効な値であると考えるべきである。私は値がヌルであることを好むでしょう。Linq to Sql:例外 "文字列は1文字長でなければなりません"
ID Gender 1 'M' 4 'M' 3 '' 4 'F'
someID
の値が3
var emp = (from e in db.Employees
where e.ID == someID
select e);
例外あるLINQのSQLへのクエリの実行時に例外が発生する:文字列が正確に1文字でなければなりません
を。
質問:この例外の原因は何ですか?この問題を防止または排除するために何ができるのですか?
SQL ServerでChar(1)を使用しないのはなぜですか? –
@ Dan - 既存のデータベーススキーマを変更して、生成されたファイルをより簡単に変更できるようにするのは意味がないためです。 LINQ to SQLデザイナーがChar for varchar(1)を使用しているという事実は、私の意見ではバグです。 –