我下面就Silverlight和棱鏡,其中WCF RIA服務是使用通過ADO.NET實體數據模型訪問Northwind數據庫一個tutorial爲外鍵返回null。WCF RIA EntityQuery
在Northwind數據庫中,有哪些是通過外鍵連接到其他兩個表(訂單和產品)的表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
,因爲產品和訂單都爲空。我已經將我的EntityDataModel設置爲「在模型中包含外鍵列」。代碼與教程完全相同,我只需重新創建ADO.Net EntityDataModel和DomainService以與我的本地數據庫一起工作,所以錯誤可能在某處。
我該如何調試這個錯誤?我以前沒有使用數據庫的經驗。我正在使用2012版Northwind數據庫的SQL Server 2012,而本教程是用SQL Server 2008 RC編寫的。
您可能可以使用Fiddler2來查看http請求和響應。 – 2012-07-29 19:47:04