いくつかのフィールドを持つ1つのエンティティと、このような1つのコレクションがあるとしましょう
Entity
int Id {get; set;}
string Name {get; set;}
string Title {get; set;}
List<Order>Orders {get; set;}
Order
int Id {get; set;}
string Name {get; set;}
Entity Entity {get; set;}
ここで、両方のエンティティからいくつかのプロパティのみを表す EntityOrderViewModel を作成したいと考えています。このような
EntityOrderViewModel
int Id {get; set;}
string EntityName {get; set;}
string EntityTitle {get; set;}
string OrderName {get; set;}
int OrderId {get; set;}
EntityOrderViewModel(Entity x)
{
Id = 1;
EntityName = x.Name;
EntityTitle = x.Title;
foreach(Order order in x.Orders)
{
OrderName = order.Name;
}
}
public static List<EntityOrderViewModel> FromMyDomain(IList<Entity> x)
{
List<EntityOrderViewModel> vm= new List<EntityOrderViewModel>();
foreach (Entity e in x)
{
vm.Add(new EntityOrderViewModel(e));
}
return vm;
}
コントローラーから、このようなすべてのエンティティを呼び出したい
//opensession
// open transaction
List<Entity> data = session.Query<Entity>().ToList();
//end transaction
transaction.commit();
//end session
return EntityOrderViewModel.FromMyDomain(data);