是否可以选择单个对象并使用单个 Lambda 表达式填充包含的 IEnumerable 属性?
类似这样的:
var someViewModel = _repository.Table.Where(x => x.Id == someId)
.Select(new ListViewModel(){
GroupId = x.Group.Id,
GroupTitle = x.Group.Title
List = ?? // Select new SubViewModel and add it to IEnumerable<SubViewModel>
})
我想要的结果是一个包含 3 个属性的新对象(在本例中为 ListViewModel)。 “列表”是新选择的对象的集合。
这可能吗?我是不是从错误的角度来看这个问题?
谢谢!
更新:
让我再试一次:) 请记住,我的名字在这里是虚构的。给定以下两个类,我想使用 Lambda 表达式构造一个数据库查询,该表达式创建一个包含“SubViewModel”集合的单个“ListViewModel”。这有助于澄清吗?
public class SubViewModel
{
public int Id { get; set; }
public string Title { get; set; }
}
public class ListViewModel
{
public int GroupId { get; set; }
public string GroupTitle { get; set; }
public IEnumerable<SubViewModel> List { get; set; }
}
我不确定我是否正确理解你的问题,但这就是我的想法,你需要创建一个新的
IEnumerable<SubViewModel>
并将该项目添加到该集合中。
var someViewModel = _repository.Table.Where(x => x.Id == someId)
.Select(new ListViewModel()
{
GroupId = x.Group.Id,
GroupTitle = x.Group.Title
List = new List<SubViewModel> { new SubViewModel(x) }
});