[英]LINQ c# mvc4 null reference exception
我正在嘗試學習LINQ,但遇到無法理解的null ref異常錯誤的問題。
項目/意圖概述:數據庫中有2個表。 一個是客戶,一個是訂單。 客戶表具有ID,名稱列。 Orders表具有orderID,Description和CustomerID列。
Customers
ID Name
1 eeee
2 dddd
3 ffff
Orders
ID Description CustomerID
1 sdffds 2
2 dsfasdf 2
3 fjdsa 1
4 dfsa 3
我想做的是僅選擇並顯示訂單數量超過1的客戶(在這種情況下,僅顯示ID為2的客戶)。
我有一個ViewModel類
public class ViewModel
{
public List<Customer> Customers { get; set; } //list of customer objects
public List<Order> Orders { get; set; } //list of customer objects
}
在我的主控制器的索引操作中,我有:
public ActionResult Index()
{
Context db = new Context(); //create new Context Object named db which contains lists of objects pulled from database server
ViewModel model = new ViewModel(); //create new ViewModel Object named model which contains lists of objects
model.Customers = db.Customers.ToList(); //pull Customers data table from db
var groups = db.Orders.GroupBy(custgroup => custgroup.CustomerId).Where(group => group.Count()>1); //pull Orders data table from db and group by CustomerID, and choose only groups with more than 1 records.
foreach (var group in groups)
{
foreach (Order order in group)
//foreach (var order in group)
{
model.Orders.Add(order); //***The null exception occurs here where 'Orders' is null. Check for null before calling method***
}
}
return View(model);
}
實際上,我想做的是按客戶對訂單進行分組,然后選擇自己選擇的訂單組。 然后將各組中的各個記錄放回原始對象格式。 通過調試,我認為我已經實現了過濾過程。 當我嘗試將記錄放回到“ model.Orders”列表中時,會發生問題。
空異常發生在內部foreach內部,其中“訂單”列表為空。 錯誤指示是.Orders列表為null和/或尚未聲明。 但我認為該列表已在語句ViewModel model = new ViewModel();
聲明ViewModel model = new ViewModel();
在頂部。
如何解決此null異常錯誤? TIA。
您忘記初始化model.Orders。
放
model.Orders = new List<Order>();
創建模型后,它應該可以工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.