EntityFramework を使用して SQL DB からデータを読み取る MVP アプリがあります。そのデータは外部の CMS Web サイト データベースからコピーされるため、データが常に信頼できるとは限りません。
私が読んだフィールドの 1 つは SQL の「ビット」データ型で、1 または 0 のいずれかであり、ASP.NET MVC はそれをブール値として要求します。そうしないと、ブール値を int に変換するときにエラーが発生します。
問題は、DB でビット値が NULL になることがあり、MVC アプリがクラッシュすることがあります。ブール値のデータ型は true または false にしかできないというエラーが表示されるため、NULL をチェックできません。
例
モデル
namespace Foo.Models
{
[Table("provider")]
public class Bar
{
//can't check for null here, getter and setter only allow boolean
public Boolean FooBar { get; set; }
}
}
コントローラ
namespace Foo.Controllers
{
public ActionResult BarList()
{
//Can't check for null here, because if(Boolean == null) will always evaluate to false
List<Bar> bars = db.Bar.ToList();
return View(bars);
}
}
FooBar が NULL の場合、ブール値に NULL を使用できないというエラーがビューにスローされます。この状況をどのように処理しますか?