在 linq 中查看模型返回数据列表

view model returning list of data in linq

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

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; }
}

现在我想在视图模型中收集数据。我将从数据库上下文中收集哪些信息,但我如何收集订阅列表的数据?

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 ?

你可以做一个 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()
                                      };