私はこれに固執しているDapper.NETの初心者です。複数行の結果セットから別のクラスを持つクラスを埋めようとしています。
# データベース SP >
SELECT b.BuildingId, b.BuildingName, b.Wood, b.Food, b.Stone, b.Gold FROM UserBuildings ub, Buildings b WHERE b.BuildingId = ub.BuildingId AND UserId = @UserId
# コード >
using (IDbConnection connection = OpenConnection())
{
List<Building.Building> buildings = new List<Building.Building>();
var multi = connection.QueryMultiple<Building.Building, Resource.Resource>("UserBuildingGet", new { UserId = UserId }, commandType: CommandType.StoredProcedure).ToList();
building.Resource = multi.Read<Resource.Resource>().Single();
return building;
}
# クラス >
public class Building
{
private int _BuildingId;
private string _BuildingName;
private Resource.Resource _Resource;
public int BuildingId
{
get { return _BuildingId; }
set { _BuildingId = value; }
}
public string BuildingName
{
get { return _BuildingName; }
set { _BuildingName = value; }
}
public Resource.Resource Resource
{
get { return _Resource; }
set { _Resource = value; }
}
public Building(int BuildingId, string BuildingName, Resource.Resource Resource)
{
this.BuildingId = BuildingId;
this.BuildingName = BuildingName;
this.Resource = Resource;
}
}
public class Resource
{
private int _Wood;
private int _Food;
private int _Stone;
private int _Gold;
public int Wood
{
get { return _Wood; }
set { _Wood = value; }
}
public int Food
{
get { return _Food; }
set { _Food = value; }
}
public int Stone
{
get { return _Stone; }
set { _Stone = value; }
}
public int Gold
{
get { return _Gold; }
set { _Gold = value; }
}
public Resource(int Wood, int Food, int Stone, int Gold)
{
this.Wood = Wood;
this.Food = Food;
this.Stone = Stone;
this.Gold = Gold;
}
}