VS2005データセットとNullチェック

前回のテーブルアダプタネタ続いて、今回はデータセットの注意事項を。
型指定データセットを使う場合はNullを許容するカラムの扱いに注意してください。

たとえば、SQL Server 2005に付いている「AdventureWorks」DBの
「Employee」テーブルでデータセットを作ったとしましょう。

Employeeテーブルでは「ManagerID」がNullを許容するカラムとして定義(ちなみにint型)されています。
その時自動生成されるデータセットのManagerIDカラムのコードが下です。
#正確に言うと、自動生成されるEmployeeRowクラスのコード

[System.Diagnostics.DebuggerNonUserCodeAttribute()]
public int ManagerID {
        get {
            try {
                return ((int)(this[this.tableEmployee.ManagerIDColumn]));
            }
            catch (System.InvalidCastException e) {
                throw new System.Data.StrongTypingException("テーブル \'Employee\' にある列 \'ManagerID\' の値は DBNull です。", e);
            }
        }
        set {
            this[this.tableEmployee.ManagerIDColumn] = value;
        }
    }

ManagerIDにアクセスしようとしたら上記コードが動きます。
キャストに失敗したらここが今日のポイントです。

DBNullを許容しているカラムで、実際にその値がNullだったら例外が発生する。

ちなみに、VSのデータセットのデザイナ画面上でManagerIDカラムを選択し、
プロパティウィンドウ上でNullValueプロパティを確認すると...
(Throw exception)に設定されています。
そのリストボックスを開くと「Empty」やら「Null」やらが表示されます。
なーんだ、ここのプロパティの値を変更してやればいいじゃん、と思いきや。
以下のような警告ダイアログが。。。

プロパティの値が無効です。
System.String に定義されていない列に対しては、(Throw exception) のみが有効な値です。

String以外は、Throw Exception以外に設定できないんですね。。。
対策としては、ManagerIDカラムにアクセスする前にNullかどうか確認する必要があります。
下みたいな感じでしょうか。

if(!EmployeeRow.IsManagerIDNull)
        int managerId = EmployeeRow.ManagerID;


うーむ、納得はいきませんが。。。しょうがないか。
何か良い方法ありましたらコメントお願いします。