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

linq如何多表查询?请赐教
刚刚自学了linq的基本的查询,感觉还是不错, 因为要赶时间做项目,遇到了linq多表查询,找了半天资料,我试了下,

可是有了很多错误,我把两张表放进一个dbml文件内,有主外键关系,下一步就不会了,拜托,哪位大哥会呢,这里的大哥都挺好的,就一个感觉,嘿嘿 

里面有个170多个错误,看了看,好像大多数都是已定义,或是冲突什么的 ,我根本看不懂




------解决方案--------------------
设aa表的a1主键,tt表t2外键,还有t3等字段
from m in aa 
where id = 123 
select new 

id = m.a1, 
t3 = m.tt.t3 //设置外键了就能这样取值,自动join
}
------解决方案--------------------
LINQ使用JOIN
var joinquery = from o in OrderTable.Select()
join c in CustomerTable.Select() on o.CustomerID equals c.CustomerID into x
from xx in x.DefaultIfEmpty(
 new Customer() { CustomerID = "UnKnown", CompanyName = "UnKnown Company" })
join e in EmployeeTable.Select() on o.EmployeeID equals e.EmployeeID into y
from yy in y.DefaultIfEmpty(
new Employee() { EmployeeID = -1, Name = "UnKnown", City = City.北京 })
select new
 {
OrderInfo = o,
CustomerInfo = xx,
EmployeeInfo = yy
};

LINQ JOIN