2010年12月09日

LINQ to SQL番外編 - NULL許容の列を扱う

   このエントリーをはてなブックマークに追加 Clip to Evernote
NorthwindデータベースのEmployeesテーブルの ReportsTo列は、NULLを許可する 型として定義されています。
そのため、「LINQ to SQLエンティティクラス」の Employee.ReprotsToプロパティも、


と、Northwind.designer.csに書かれています。

System.Nullableは、int? と同じ意味です。

これがわかれば、クエリ式を書くのもそう難しいことではありません。


ReportsToがNULLのものだけ取得したいのなら、


と書けばOKです。

では、Customersテーブルの Fax列(NULLを許可しています)は、どうでしょうか?。
Fax列は、「LINQ to SQLエンティティクラス」のCustomer.Faxでは、C#のString 型にマッピングされています。
System.Nullable とはなっていません。
string型は参照型で、もともとnullを保持できますから、そのままでOKということです。
というか、文法上、System.Nullable とすることはできません。

ですから、


と書けば、Fax番号が登録されていない顧客だけを抜き出すことができます。


 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/52098911