ASP.net Web サービス C#.net3.5 を使用しており、LINQ TO SQL を使用して SQL データベースを操作しています
テーブルからすべての国情報を返したいCountries
ので、オブジェクトのリストを返す Web メソッドを作成しました。各オブジェクトには 2 つのデータ フィールドCountry_Id
がCountry_Name
あり、メソッドは次のとおりです。
public List<CountryObject> ReturnAllCountries()
{
ProjectTwoDataBaseDataContext DataBase = new ProjectTwoDataBaseDataContext();
var Country = from a in DataBase.Countries
select new {a.Country_Id,a.Country_Name };
CountryObject TempObject = new CountryObject();
List<CountryObject> TempList = new List<CountryObject>();
foreach (var a in Country)
{
TempObject.setCountry_Id(a.Country_Id);
TempObject.setCountry_Name(a.Country_Name);
TempList.Add(TempObject);
}
return TempList;
}
しかし、コードを実行すると、同じオブジェクトを含むリストが取得されます。このオブジェクトには、Foreach の最後のラウンドから取得した値が含まれています。
私は以下を試します:
public List<CountryObject> ReturnAllCountries()
{
ProjectTwoDataBaseDataContext DataBase = new ProjectTwoDataBaseDataContext();
var Country = from a in DataBase.Countries
select new {a.Country_Id,a.Country_Name };
CountryObject TempObject;
List<CountryObject> TempList = new List<CountryObject>();
foreach (var a in Country)
{
TempObject = new CountryObject();
TempObject.setCountry_Id(a.Country_Id);
TempObject.setCountry_Name(a.Country_Name);
TempList.Add(TempObject);
}
return TempList;
}
そして私は欲しいものを手に入れました>>なぜ????