视图模型返回linq中的数据列表

时间:2016-03-28 13:50:18

标签: c# entity-framework linq linq-to-entities

我有一个视图模型,其中包含普通属性和订阅列表的组合

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 ?

1 个答案:

答案 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()
                                      };