是否可以在lambda select语句中添加一个函数? 这是完全错误的语法,但它是出于演示目的。
var test = _context.SomeDatabaseTable
.Select(c => new SomeViewModel
{
AssignedUsers = {
foreach (var item in c.AssignedToUserIDs.Split(';').ToList()) {
//SOME CODE
}
}
});
任何人都知道我之后是否有必要循环结果?
答案 0 :(得分:2)
您无法这样做的原因是因为Select()
查询实际上并未针对数据库执行查询,因此EntityFramework会尝试将该C#代码转换为SQL,这显然可以& #39;吨
您可以在致电ToList()
之前致电Select()
来执行查询。
var test = _context.SomeDatabaseTable
.ToList()
.Select(c => new SomeViewModel
{
AssignedUsers = c.AssignedToUserIDs.Split(';')
});
这有其自身的问题,如果您在执行ToList()
之前没有正确过滤查询,您将开始遇到性能问题,这会随着数据库大小的增加而变得更糟。
您使用foreach
循环尝试的内容也无效。它甚至不应该编译,所以删除它并使用我上面显示的内容,我假设AssignedUsers属性属于' List',如果你想修改单个元素' ;已被拆分,您可以将另一个Select()
方法链接到Split()