2016-06-16 10 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); 
関連する問題