ADO.NET Entity Data Modelを介してNorthwind データベースにアクセスするためにWCF RIA サービスを使用する、Silverlight と Prism に関するチュートリアルに従っています。
Northwind データベースには、外部キーを介して他の 2 つのテーブル (Orders と Products) に接続されている Order_Details テーブルがあります。
データベースにクエリを実行するコードは次のようになります。
EntityQuery<Order_Detail> detailQuery = _MyDomainContext.GetOrder_DetailsQuery();
_MyDomainContext.Load(detailQuery.Where(
det => det.Order.Customer.CustomerID == cust.CustomerID).OrderByDescending(
det => det.Order.OrderDate).Take(10), OnDetailsLoaded, null);
次に、OnDetailsLoaded で:
var details = loadOp.Entities;
if (details != null)
{
var detailsList = details.ToList();
detailsList.ForEach(det => Orders.Add(
new OrderItem
{
ProductName = det.Product.ProductName,
Quantity = det.Quantity,
OrderDate = det.Order.OrderDate.Value
}));
new OrderItem
Product と Order の両方が null であるため、これにより で Null Exceptionが発生します。EntityDataModel を「モデルに外部キー列を含める」に設定しました。コードはチュートリアルとまったく同じです。ローカル データベースで動作するように ADO.Net EntityDataModel と DomainService を再作成するだけでよかったので、エラーはおそらくそこのどこかにあります。
このエラーをどのようにデバッグしますか? データベースの経験はありません。チュートリアルはSQL Server 2008 RCで書かれていますが、2012年に適応したNorthwindデータベースでSQL Server 2012を使用しています。