Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在返回SystemException的linq查询中使用.Contains_Linq_Entity Framework - Fatal编程技术网

在返回SystemException的linq查询中使用.Contains

在返回SystemException的linq查询中使用.Contains,linq,entity-framework,Linq,Entity Framework,我在尝试编写linq查询时遇到了一些问题 我有一个已经修改过的产品列表,所以我试图从数据库中获取产品列表,以允许我对其应用更改 我尝试了两种不同的查询 var query = from p in db.Products where products.Select(z => z.id).Contains(p.Id) select p; var query2 = from p in db.Products

我在尝试编写linq查询时遇到了一些问题

我有一个已经修改过的产品列表,所以我试图从数据库中获取产品列表,以允许我对其应用更改

我尝试了两种不同的查询

   var query = from p in db.Products
                where products.Select(z => z.id).Contains(p.Id)
                select p;

        var query2 = from p in db.Products where (from o in products
                     select o.id)
                    .Contains(p.Id)
                    select p;
两次尝试都返回一个错误

base{System.SystemException}={“无法创建类型为'ProjectABC.Models.ProductModel'的常量值。在此上下文中仅支持基元类型('例如Int32、String和Guid')。”}


我做错了什么?

前几天我也遇到了同样的问题,似乎EF不支持Select()。Contains()没有给出错误。在测试了一段时间后,我最终将它拆分为您的情况下对应的内容

var IDs = products.Select(z=>z.id);
var query = from p in db.Products
            where IDs.Contains(p.Id)
            select p;
在我的例子中,当“产品”集合在内存中时(即来自数据库的ToList()结果),这一点很好地发挥了作用