在 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()
};
我有一个视图模型,其中包含普通属性和订阅列表的组合
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()
};