2011年11月29日

ToNullable拡張メソッド

   このエントリーをはてなブックマークに追加 Clip to Evernote
var を使いたいための、拡張メソッド。


これを使えば、

int? n = 10;

ではなくて、

var n = 10.ToNullable();

と書けます。

まあ、あくまでもお遊びです。
  

Posted by gushwell at 22:30Comments(0)TrackBack(0)

2011年11月26日

NullableのオブジェクトのGetType()で得られる値は

   このエントリーをはてなブックマークに追加 Clip to Evernote

以下のコードの変数 t って、Nullable<Decimal> の型情報が入るのかと思ったら、
Decimalの型情報が入るんだ。

そういえば前にも同じようなことで悩んだ気がするけど...
まあ、実際はこんなコードが必要になる場面は無いだろうけどね。


  
Posted by gushwell at 11:30Comments(2)TrackBack(0)

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番号が登録されていない顧客だけを抜き出すことができます。
  
Posted by gushwell at 23:30Comments(0)TrackBack(0)