使用内存对象和数据库中的Any()使用Linq查询

时间:2012-11-24 02:47:10

标签: c# linq

  

可能重复:
  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);


        }

1 个答案:

答案 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);


        }

将其转换为列表以执行查询,然后您可以从该集合中创建新对象。