1

私はエンティティを持っています:

public virtual int RecommendedUserId { get; set; }
public virtual string Firstname { get; set; }
public virtual string Surname { get; set; }
public virtual string Email { get; set; }
public virtual string JobTitle { get; set; }
public virtual DateTime? DateAndTimeProcessed { get; set; }
public virtual DateTime? DateAndTimeRecommended { get; set; }
public virtual string ReasonForRejection { get; set; }

//  User also an entity and has property UserId
public virtual User RecommendedByUser { get; set; }
public virtual User AssignedToUser { get; set; }

私のコントローラーには次のものがあります:

   Entities.RecommendedUser user = new RecommendedUser();
   user.Firstname = model.Firstname;
   user.Surname = model.Surname;
   user.Email = model.Email;
   user.JobTitle = model.JobTitle;

   // why am i getting the Object reference not set to 
   // an instance of an object error??
   user.RecommendedByUser.UserId = CurrentUser.UserId;  

インスタンス化する場合、内部でもRecommendedUserインスタンス化しませんか??UserRecommendedUser

4

4 に答える 4

3

RecommendedByUserof をインスタンス化していませんuser。を開始しているだけですuser

   user.Firstname = model.Firstname;
   user.Surname = model.Surname;
   user.Email = model.Email;
   user.JobTitle = model.JobTitle;
   user.RecommendedByUser = new RecommendedUser(); // or whatever the exact type is, maybe just User
   user.RecommendedByUser.UserId = CurrentUser.UserId; 
于 2013-04-26T08:38:17.777 に答える
2

値の型はクラスで初期化されます。NULLただし、参照型であるため、子オブジェクトは可能です。これらのオブジェクトは、プロパティに割り当てる前に初期化する必要があります。

Entity Framework のようなテクノロジを使用していると思います。このようなフレームワークを使用すると、これらのオブジェクトをプリフェッチできるため、データソースからエンティティを取得するときにオブジェクトがフェッチ (および初期化) されます。ただし、新しいオブジェクトを作成する場合は、自分で作成する必要があります。

于 2013-04-26T08:41:23.167 に答える
0

常に最初に null 値を確認する必要があります。

if(user.Firstname != null)
{
  user.Firstname = model.Firstname;
}

nullpointer 例外を回避するには

于 2013-04-26T08:49:07.100 に答える