ストアドプロシージャから返されるデータがない場合、以下のコードはnull参照例外をスローします。データが存在する場合、メソッドは正常に実行されます。ドメインモデルからビューモデルへの変換時にヌル参照の問題が発生する
私は以下のコードで何か問題がありますか?モデルからオブジェクトを作成する必要はありますか?
public PersonVM GetStaff()
{
PersonDM personDM = _Repo.GetStaff();
PersonVM personVM = PersonVM.ToViewModel(personDM);
return personVM;
}
public class PersonDM
{
public int RoleID { get; set; }
public string Name { get; set; }
}
public class PersonVM
{
public int RoleID { get; set; }
public string Name { get; set; }
public static PersonVM ToViewModel(PersonDM model)
{
return new PersonVM
{
RoleID = model.RoleID,
Name = model.Name
};
}
public PersonDM ToEntityModel()
{
return new PersonDM
{
RoleID=this.=RoleID,
Name = this.Name,
}
}
}
SP personDM
から返されるデータがない場合、NULLになります。 NULLを返さずにヌル値で埋める必要があります。達成することは可能ですか?
私は以下のコードでList<PersonVM>
を返している方法と同じことをしました。データが存在しない場合は、VMにNULL値が設定されます。 _Repo.GetStaff()
がnullを返すされているのでpersonDM
がnullであると仮定すると、タイプPersonVM
public List<PersonVM> GetPartyByPartyRelationship(int partyRoleId, int partyRelationshipTypeId)
{
List<PersonDM> personDMList = _partyManagerRepo.GetPartyByPartyRelationship(partyRoleId, partyRelationshipTypeId);
List<PersonVM> personVMList = new List<PersonVM>();
foreach (PersonDM personDM in personDMList)
{
personVMList.Add(PersonVM.ToViewModel(personDM));
}
return personVMList;
}
NullReferenceExceptionはどこにスローされますか? –
'PersonDM personDM = _Repo.GetStaff();'は実際にPersonDMを返しますか? –
@ChrisPickford私は質問を修正しました。どうぞご覧ください –