我有一个视图模型,其中包含普通属性和订阅列表的组合
public class ProjectViewModel
{
public String ProjectId { get; set; }
public String Name { get; set; }
public List<Subscriptions> Subscriptions { get; set; }
}
public class Subscriptions
{
public long Id { get; set; }
[MaxLength(40)]
public string ProjectId { get; set; }
public string SubscriptionId { get; set; }
}
现在我想在View Model中收集数据。我将从数据库上下文收集哪些内容,但如何收集订阅列表的数据?
var result = (from p in DataContext.Project join c in DataContext.Subscriptions
on p.ProjectId equals c.ProjectId
select new ProjectViewModel { ProjectId = p.ProjectId,
Name = p.Name
// List of subscriptions ?
答案 0 :(得分:2)
您可以执行group join:
var query=from p in DataContext.Project
join c in DataContext.Subscriptions on p.ProjectId equals c.ProjectId into subs
select new ProjectViewModel {
ProjectId = p.ProjectId,
Name = p.Name,
Subscriptions=subs.ToList()
};
但如果您使用navigation properties构建查询,则会更简单:
var query=from p in DataContext.Project
select new ProjectViewModel {
ProjectId = p.ProjectId,
Name = p.Name,
Subscriptions=p.Subscriptions.ToList()
};