私が作成する多くのアプリでは、DBML オブジェクトのサブクラスにデフォルト値を割り当てていることに気づきます。これは私がそれをしなければならない現在の方法の例です:
var viewModel = new RandomViewModel
{
ContactName = (Order.Customer != null ? Order.Customer.ContactName : "Unknown"),
Date = Order.OrderDate,
Shipper = (Order.Shipper != null ? Order.Shipper.CompanyName : "Fedex"),
ShipCity = Order.ShipCity,
ShipRegion = Order.ShipRegion,
FirstCategory = (Order.OrderDetails.First().Product.Category != null
? Order.OrderDetails.First().Product.Category.CategoryName
: "DefaultCategory",
ItemCount = Order.OrderDetails.Count
};
理想的には、次のように最も読みやすくなります。
var viewModel = new RandomViewModel
{
ContactName = Order.Customer.ContactName ?? "Unknown",
Date = Order.OrderDate,
Shipper = Order.Shipper.CompanyName ?? "Fedex",
ShipCity = Order.ShipCity,
ShipRegion = Order.ShipRegion,
FirstCategory =
Order.OrderDetails.First().Product.Category.CategoryName
?? "DefaultCategory",
ItemCount = Order.OrderDetails.Count
};
ただし、null である外部キー付きオブジェクトには NullReferenceException があります。ここでは null 合体は使用できないと思いますが、この非常に頻繁なタスクを達成するための他の適切な方法はありますか? おそらく、クラス/メソッドの拡張、または VS マクロでさえありますか?
この例では Northwind データベースを使用しました。
あらゆる提案を受け入れます。