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は、すべてのユーザーの名前と名前の文字列をマージする必要があります。DevExpress Mvc Gridを使用し、この方法で渡す必要があるため、これはIQueryableである必要があります。グリッドはページングを処理するため、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、SarahHodge"...などになります。
ご入力いただきありがとうございます。