EF使用LINQ尝试在数组中传递包含

本文关键字:包含 数组 使用 LINQ EF | 更新日期: 2023-09-27 18:09:53

是否有更好的方法从数组中编写此CONTAINS ?

我正在传递一个字符串/数组到我的LINQ语句。在SQL中,正在工作的代码是

 SELECT * FROM dbo.option1 
 WHERE option1Code IN ('9841','V237','SV02','2057')

在EF使用LINQ我正在尝试

            using (var ctx = new ProductEntities())
        {
            //--------------------------------------------------------------------//
            string csvSKU = '984,237,102,207';
            string[] mArray = csvSKU.Split(',');
            var results = (from o in ctx.option1
                           join p in ctx.Products on o.option1Code equals p.productSKU
                           where mArray.Contains(o.option1Code)                                    
                           orderby o.option1Sort
                           select o).Distinct().ToList();
            return results;
        }

EF使用LINQ尝试在数组中传递包含

这看起来很好,应该会产生类似的SQL作为你发布(至少对于Contains部分)。

也不确定你的连接现在是什么-是否有任何选项代码在Products表/productSKU中没有条目?