当客户名称或代理名称 = Null 时出现错误

i got error When Customer Name or Agent Name = 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);

如果你的意思是你得到引用错误是因为代理和客户没有在用户 class 的构造函数中加载,你必须使用延迟加载

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

}

您收到一个错误,因为您试图访问一个 Null 对象的 属性。本例中的 Agent 和 Customer 属性。在尝试使用它们之前,您需要测试空值。

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,则可以使用新的 shorthand

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);

我使用了这个代码并且成功了 谢谢

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);