2016-06-16 66 views
0

和我有錯誤,當客戶名稱或代理人名稱= NULL我有錯誤,當客戶名稱或代理人名稱= NULL

var results = db.Users.ToDataSourceResult(request, o => new 
      { 
       Id= o.Id, 
       UserName = o.UserName, 
       Email = o.Email, 
       PhoneNumber = o.PhoneNumber, 
       AgentName = o.Agent.FullName, 
       CustomrName = o.Customer.Name 


      }); 

      return Json(results, JsonRequestBehavior.AllowGet); 
+0

請提供你一個更完整的例子正在努力去做 –

回答

0

,因爲你試圖訪問一個對象,它是空的財產你得到一個錯誤。代理和客戶屬性在這種情況下。在嘗試使用它們之前,您需要測試空值。

var results = db.Users.ToDataSourceResult(request, o => new 
{ 
    Id = o.Id, 
    UserName = o.UserName, 
    Email = o.Email, 
    PhoneNumber = o.PhoneNumber, 
    AgentName = o.Agent == null ? null : o.Agent.FullName, 
    CustomrName = o.Customer == null ? null : o.Customer.Name 
}); 

return Json(results, JsonRequestBehavior.AllowGet); 

或者,如果你使用的是C#6你可以使用新的速記

var results = db.Users.ToDataSourceResult(request, o => new 
{ 
    Id = o.Id, 
    UserName = o.UserName, 
    Email = o.Email, 
    PhoneNumber = o.PhoneNumber, 
    AgentName = o.Agent?.FullName, 
    CustomrName = o.Customer?.Name 
}); 

return Json(results, JsonRequestBehavior.AllowGet); 
0

如果你的意思是你有引用錯誤,這是因爲代理和客戶未在加載用戶類的構造函數,你必須使用延遲加載

Public class user{ 
public user 
(
agent=new Agent(); 
customer=new Customer(); 
) 

} 
0

我用這個代碼和工作 感謝

var results = db.Users.Include("Customer").Include("Agent").ToDataSourceResult(request, o => new 
      { 
       Id = o.Id, 
       UserName = o.UserName, 
       Email = o.Email, 
       PhoneNumber = o.PhoneNumber, 
       AgentName = o.Agent?.FullName, 
       CustomrName = o.Customer?.Name 


      }); 

      return Json(results, JsonRequestBehavior.AllowGet); 
相關問題