可能重复:
Only primitive types (‘such as Int32, String, and Guid’) are supported in this context
好的,我有一个用户表和一个users_users表,基本上只是将2个用户绑在一起。
我的entityframework在Model中没有users_users,它只显示为主用户对象的关系/属性。这种关系显示为u.user1
所以u.user1是users_users表中存在的用户集合。 这很棒但是......
我正在尝试创建一个查询,我可以从用户表中选择所有用户,并在select子句中创建一个布尔变量(在下面的代码中称为添加),该子句将显示user_user是否有记录连接。
我收到错误“无法创建类型仅基本类型的常量值”
我知道在select中使用“Any()”命令时,我不能在内存对象中使用Linq查询,那么我该怎么做呢?我是LINQ的新手。
using (myEntities entities = new myEntities())
{
Model.user u = entities.users.Single(m => m.emailLogon == System.Web.HttpContext.Current.User.Identity.Name);
ObjectQuery<Model.user> susers = entities.users;
var pplquery = (from suser in susers
select new { userId = suser.IdUser, FirstName = suser.contactinfo.FirstName, LastName = suser.contactinfo.LastName, added =
u.user1.Any(cusr => cusr.IdUser == suser.IdUser)}).Take(15);
}
答案 0 :(得分:1)
using (myEntities entities = new myEntities())
{
Model.user u = entities.users.Single(m => m.emailLogon == System.Web.HttpContext.Current.User.Identity.Name);
var susers = entities.users.ToList();
var pplquery = (from suser in susers.AsQueryable()
select new { userId = suser.IdUser, FirstName = suser.contactinfo.FirstName, LastName = suser.contactinfo.LastName, added =
u.user1.Any(cusr => cusr.IdUser == suser.IdUser)}).Take(15);
}
将其转换为列表以执行查询,然后您可以从该集合中创建新对象。