0
私はCompanyViewModel
コンストラクタで、次のモデルを移入し、単一のLINQクエリを作成しようとしています:のLINQ:複数記載されている複合型へのキャストの結果
public class CompanyViewModel
{
public IList<CompanyUserViewModel> CompanyUsers { get; set; }
...
}
public class CompanyUserViewModel
{
public User User { get; set; }
public IList<UserOperationViewModel> UsersOperations { get; set; }
}
public class UserOperationViewModel
{
public Operation Operation { get; set; }
public int Permission { get; set; }
}
現在、私は次のクエリを持っています:ビルドを
return db.Users.Where(u => u.CompanyId == companyId)
.Select(u => new CompanyUserViewModel {
User = u,
UsersOperations = db.UsersInOperations
.Where(uo => uo.UserId == uo.UserId)
.Select(uo => new UserOperationViewModel{
Operation = uo.Operation,
Permission = uo.Permission
}).ToList()
}).ToList();
が、ページを実行すると、私が取得
LINQ to Entities does not recognize the method 'System.Collections.Generic.List`1[WoodCo.Models.BusinessObject.UserOperationViewModel] ToList[UserOperationViewModel](System.Collections.Generic.IEnumerable`1[WoodCo.Models.BusinessObject.UserOperationViewModel])' method, and this method cannot be translated into a store expression.
W帽子は1つをしますか?
私は可能性を考えました、それはちょうど私のビュー(私はASP.NET MVC 2を使用しています)私は、インデックスでアイテムにアクセスしています。 Model.CompanyUsers [x] .UsersOperations [y] .Permission既定のモデルバインディングが機能するようにします。 – ajbeaven
クエリを2つに分割することができます。最初に匿名型にプロジェクトを作成し、次に.AsEnumerable()を実行してリストを作成します。 –