我是Entity framwork的新手,目前正在努力使用这种编程范例。我有这个查询,我想在实体SQL中编写。
SELECT f.id, f.personName, c.Category, j.busCode, s.description, f.StartDate, (SELECT COUNT(*) FROM Analysis WHERE id = f.id) As numOfAnalysis
FROM forms f
INNER JOIN Jobs j ON f.id = j.id
INNER JOIN category c ON j.categoryid = c.categoryid
INNER JOIN stage s ON f.stageid = s.stageid
WHERE j.busCode NOT IN ('xyz', 'YYY')
ORDER BY startDate
我可以从两个表中获取记录但是只要我使用导航属性添加第三个表,我就会在当前上下文中加载错误表类别。我正在使用.net 3.5。请记住,EDM V2 doest没有外键,我认为遍历表关系的唯一方法是导航属性。
任何帮助都将深受赞赏。
由于
Coder74
答案 0 :(得分:0)
如果你使用应该能够挂载这个Linq查询。 我试图把它放在一起,但是在匆忙中并没有这样的测试很复杂。 您可以将此参考用作支持:http://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b
var result = (from f in forms
join j in Jobs on f.id equals j.id
join c in Category on j.categoryid equals c.categoryid
join s in stage on f.stageid equals s.stageid
join a in Analysis on a.id equals f.id
where !(new int[] { 'xyz', 'YYY' }).Contains(j.busCode)
orderby f.StartDate
select {
id =f.id,
personName = f.personName,
Category = c.Category,
busCode = j.busCode,
description = s.description,
StartDate = f.StartDate,
numOfAnalysis = a.Count()
}).ToList()
Julio Spader
W&SSoluçõesdeInternet