0
SQLデータベースからデータを取得しようとしていますが、5つのレコードがあります。しかし、その5つのレコードのリストから、別々に2つのリストを作成したいと思います。私は以下のことをやろうとしています:Cのコレクションリストにデータを追加する方法
public class ParentModel
{
public List<Model1> Child1 { get; set; }
public List<Model2> Chil2{ get; set; }
}
私の他の2つのモデルがある:私は 私のサービスからParentModelで定義されたリストの両方を移入したい
public class Model1
{
public int Id { get; set; }
public string Name { get; set; }
public int? GroupNumber { get; set; }
public string Description { get; set; }
}
public class Model2
{
public string Name { get; set; }
public int? Number { get; set; }
}
それがnull例外がスローされます。リストにデータを追加するにはどうすればよいですか?
public ParentModel GetALL(int ID)
{
ParentModel objModel = new ParentModel();
// here I fetch data from database using Iqueryable:
IQueryable<Products> List = this._products.GetAll();
var NamesList = List .Where(m => m.Id == ID).ToList();
// Here I need to add data to my list. Also if it can be
// followed in a best possible way, Please do share it with me.
foreach (var obj in NamesList)
{
objModel.Child1.Add(new Model1
{
Id=obj.Id, // Here it throws error of null exception
Name = obj.Name,
GroupNumber = obj.GroupNumber,
Description =obj.Description
});
// the other list I would like to populate at the same time is
objModel.Chil2.Add(new Model2
{
Name = obj.Name,
Number = obj.Number
});
}
}
これは素晴らしいです。それは正常に動作しています。これらのプロパティを新しいもので作成する必要がある理由、またはプロパティを先にメモリに割り当てる必要がある理由について説明してください。私が知る限り、コンストラクタでnewを使わずにクラスの任意のプロパティを使うことができます。 – Sweetie
が正しく、正しいプロパティが返されます。ただし、最初に初期化されたときにchild1とchil2の両方がNULLになり、nullオブジェクトで.Addを呼び出すことはできません。 – DevilSuichiro
これらはリストオブジェクトであり、{get; set}はリストを初期化しません。 – jdweng