Linq 以列表形式检索相关表<;POCO>;使用实体
在创建另一个POCO的LINQ查询中尝试使用POCO创建通用列表时遇到问题:Linq 以列表形式检索相关表<;POCO>;使用实体,linq,linq-to-entities,Linq,Linq To Entities,在创建另一个POCO的LINQ查询中尝试使用POCO创建通用列表时遇到问题: var user = from u in ctx.users select new User { id = u.UserID, name = u.Name, roles = u.Roles.ToList() }; 我已经创建了用户和角色类。如果我将用户中的“角色”定义为: public List<Roles> roles; 如何确切地使用POCO而不是实体对象?您是否有名称空间:
var user =
from u in ctx.users
select new User
{
id = u.UserID,
name = u.Name,
roles = u.Roles.ToList()
};
我已经创建了用户和角色类。如果我将用户中的“角色”定义为:
public List<Roles> roles;
如何确切地使用POCO而不是实体对象?您是否有名称空间:
using System.Linq;
List userEntities=ctx.Users.Include(“角色”).ToList();
列出用户=
来自用户实体中的u
选择新用户()
{
id=u.UserId
名称=美国名称
角色=
(
从r到角色
选择新角色()
{
}
)托利斯先生()
}
您只是将“角色”表示为两种不同的东西。你能重述一下你的问题吗?这不太管用,我想知道你是否能解释一下:实际上,该代码生成的异常与我之前遇到的相同。如果我将“from”包装到()中的结尾“}”,我就能够调用.ToList(),代码将被编译。但是,它生成了一个新的异常:“LINQ to Entities无法识别方法'System.Collections.Generic.List1[MVC1.Models.Role]ToList[Program](System.Collections.Generic.IEnumerable
1[MVC1.Models.Role]),并且此方法无法转换为存储表达式。”(如果相关,我使用的是3.5。)User.Roles
属性不能是字符串。它需要是某种类型的列表(例如,IList
)。
Error 3 Cannot convert lambda expression to type 'string' because it is not a delegate type
using System.Linq;
var user =
from u in ctx.users
select new User
{
id = u.UserID,
name = u.Name,
roles = from r in u.Roles
select new Role
{
...
}
};
List<Data.User> userEntities = ctx.Users.Include("Roles").ToList();
List<POCO.User> users =
from u in userEntities
select new User()
{
id = u.UserId
name = u.Name
roles =
(
from r in Roles
select new Role()
{
}
).ToList()
}