我在我的项目中使用 LINQ,我的代码是:
var SE = from c in Shop.Sections
join c1 in obj.SectionObjects on c.SectionId equals c1.SectionId
select c;
dataGridView1.DataSource = SE;
但我面临这个错误dataGridView1.DataSource = SE;
错误信息是:
本地序列不能在查询运算符的 LINQ to SQL 实现中使用(Contains() 运算符除外)。
您不能在 SQL 源和本地源之间使用联接。您需要将 SQL 数据放入内存中,然后才能连接它们。在这种情况下,您并没有真正进行连接,因为您只从第一个集合中获取元素,您想要的是选择...其中...selectid in查询,您可以使用 Contains 方法获取该查询。
var SE = Shop.Sections.Where( s => obj.SectionObjects
.Select( so => so.SectionId )
.Contains( s.SectionId ))
.ToList();
翻译为
select * from Sections where sectionId in (...)
其中 in 子句的值来自本地对象集合中的 id 列表。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)