日期:2014-05-20  浏览次数:20735 次

ADO.NET EF中多表查询的问题
头疼,查了很多有关资料,发现没有讲EF中多表联合查询返回结果集的,问问大家EF是否支持多表查询,如何支持那它应该返回什么类型的数据?例如我有学生表,成绩表,我要查询得到学生成绩联合查询后的结果。

------解决方案--------------------
结贴率百分之零哦
如果有外键的话它会自动连接上的。。如果没有外键约束的话就得用join来连接了。
然后 select new{需要的列}
------解决方案--------------------
select new {表1.字段....表2.字段}

返回的是匿名类的集合
------解决方案--------------------
3楼的不了解就不要清下结论哦

楼主问题描述太不清楚了,建议还是好好补一下EF的相关知识。


假如有一个Model,有两个EntitySet:Students、Scores,Student有属性StudentID、StudentName,Score表有ScoreID、Score跟StudentID,二表之间是一对一的关系。
(以上假设信息楼主应该给出来的,别老想动一动嘴巴就能让人能帮上你)


那么取关联数据:

ScoreEntities ctx = New ScoreEntities();
Student s = ctx.Students.First(n=>n.StudentID==ID);
s.ScoreReference.Load();

手动进行关联后可通过以下方式访问两个表的相关属性:
s.StudentID
s.StudentName
s.Student.Score.ScoreID
s.Student.Score.Score

EF提供了三种查询方式:Linq To Entities、QueryBuilder、Entitiy SQL

..........

............

自己看书去吧