なにを言いたいのかいまいちよくわからないタイトル。
コレクションをプロパティに持つクラスがあるとして
public class SchoolViewModel {
public int ClassID { get; set; }
public int Grade { get; set; }
public int Class { get; set; }
public IEnumerable<SchoolerViewModel> SchoolerList { get; set; }
}
// 上のコレクションの要素となるクラス
public class SchoolerViewModel
{
public int ClassID { get; set; }
public string Name { get; set; }
public int Number { get; set; }
}
このにコレクションにLINQでがつんと値を入れる
from school in db.School
join sc in db.Schooler on school.ClassID equals sc.ClassID into schooler
select new SchoolViewModel()
{
ClassID = school.ClassID
,
Grade = school.Grade
,
Class = school.Class
,
SchoolerList = schooler.Select(
s => new SchoolerViewModel() {
ClassID = s.ClassID, Name = s.Name, Number = s.Number
} )
};
}
LINQの into 句とか select の中で もう一度 select してるあたりがミソ(だと思ってる)。
SQLは一発しか発行されていない。
取得されるデータをLINQさんが勝手にグループ化してコレクションのプロパティに入れてくれるという。LINQさんってすげぇ…。
0 件のコメント:
コメントを投稿