我有 3 个 MySql 表:Students
, Classes
and StudentsInClasses
.
实体框架将它们转换为两个实体Student
and Class
,每个都通过多对多导航属性链接到另一个(例如Student.Classes
).
但没有StudentsInClasses
实体,所以使用 LINQ to Entities(相当于 SQL)的最佳调用方式是什么:
SELECT StudentId, ClassId FROM StudentsInClasses;
我正在寻找 { StudentId, ClassId } 对的 HashSet (或等效项),以便我可以快速查找给定学生是否在给定班级中。 (存储这个的最佳方式是什么?)
非常感谢。
怎么样:
var query = from @class in db.Classes
from student in @class.Students
select new { ClassId = @class.ID, Student = student };
var lookup = query.ToLookup(x => x.ClassId,
x => x.Student);
(我怀疑一个Lookup
比a更合适HashSet
here.)
编辑:如果您不想使用查询表达式:
var query = db.Classes
.SelectMany(@class => @class.Students,
(@class, student) => new { ClassId = @class.ID,
Student = student });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)