ฉันกำลังติดตาม บทช่วยสอน บน Silverlight และ Prism โดยที่ บริการ WCF RIA ใช้เพื่อเข้าถึง ฐานข้อมูล Northwind ผ่าน ข้อมูลเอนทิตี ADO.NET รุ่น.
ในฐานข้อมูล 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 ขึ้นมาใหม่เพื่อทำงานกับฐานข้อมูลในเครื่องของฉัน ดังนั้นข้อผิดพลาดจึงน่าจะอยู่ที่ไหนสักแห่งที่นั่น
ฉันจะแก้ไขข้อผิดพลาดนี้ได้อย่างไร ฉันไม่มีประสบการณ์เกี่ยวกับฐานข้อมูลมาก่อน ฉันใช้ SQL Server 2012 กับฐานข้อมูล Northwind ที่ดัดแปลงสำหรับปี 2012 ในขณะที่บทช่วยสอนเขียนด้วย SQL Server 2008 RC