【发布时间】:2019-05-16 08:08:01
【问题描述】:
LINQ to Entities 无法识别方法“System.String ToString()”方法。
List <MenuModels> _menus =
_entity.SubMenus
.Where(x => x.RoleId.Split(',').ToString() == _loginCredentials.UserRoleId)
.Select(x => new MenuModels
{
MainMenuId = x.MainMenu.Id,
MainMenuName = x.MainMenu.MainMenu1,
SubMenuId = x.Id,
SubMenuName = x.SubMenu1,
ControllerName = x.Controller,
ActionName = x.Action,
RoleId = x.RoleId,
RoleName=x.Role.Roles
}).ToList();
【问题讨论】:
-
x.RoleId.Split(',') 不会产生字符串而是字符串数组。你想做什么?
-
Entity Framework 正在尝试将此查询转换为 SQL,但它不知道如何处理
ToString方法。它也可能在Split上失败。所以你需要在内存中完成这一切,否则我强烈建议你修复你的数据库模型。如果您需要“拆分”一个值,那么您应该将这些项目放在一个单独的表中。
标签: c# entity-framework