2016-06-16 68 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); 
相关问题