我的数据库中有一个IQueryable<Model>
对象。我需要将它们投射到IQueryable<ViewModel>
class Model
{
public Guid ModelId { get; set; }
// some properties
public virtual User Users{ get; set; }
}
class User
{
public Guid UserId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
class ViewModel
{
public Guid ModelId { get; set }
public string UsersName { get; set; }
}
ViewModel.UsersName 应该是所有用户名字和姓氏的合并字符串。这需要是一个 IQueryable,因为我将使用 DevExpress Mvc Grid 并且我需要以这种方式传递它。Grid 处理分页,所以它需要 IQueryable。
我试过了:
IQueryable<ViewModel> viewModel = model.Select(s => new ViewModel()
{
UsersName = s.Users
.OrderBy(d => d.LastName)
.ThenBy(d => d.FirstName)
.Aggregate(string.Empty, (s1, users) => users.FirstName + ' ' + users.Surname + ", ")
});
但它不能翻译为 linq 到实体。我也尝试过 string.join() 但它也不起作用。
结果字符串应为示例:“Cecelia Leblanc, Sarah Hodge”...等。
感谢您的任何意见。