Linq到实体:将结果强制转换为多个列出的复杂类型
我正在尝试创建一个linq查询,它填充Linq到实体:将结果强制转换为多个列出的复杂类型,linq,linq-to-entities,Linq,Linq To Entities,我正在尝试创建一个linq查询,它填充CompanyViewModel构造函数中的以下模型: public class CompanyViewModel { public IList<CompanyUserViewModel> CompanyUsers { get; set; } ... } public class CompanyUserViewModel { public User User { get; set; } public IList&
CompanyViewModel
构造函数中的以下模型:
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; }
}
这会生成,但当页面运行时,我会
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.
做什么?将视图模型属性更改为使用
IEnumerable
而不是ILIS我已经考虑过这种可能性,它只是在我的视图上(我使用的是ASP.NET MVC 2),我通过索引访问该项,即.model.CompanyUsers[x].UsersOperations[y].Permission,以使默认模型绑定工作。您可以将查询一分为二,然后。首先投影到匿名类型上,然后是.AsEnumerable()
,然后是列表。
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.