Entity framework 从3个以上的表中选择实体SQL

Entity framework 从3个以上的表中选择实体SQL,entity-framework,entity,Entity Framework,Entity,我不熟悉实体框架,目前正努力尝试使用这种编程范式。我有一个查询,我想在实体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

我不熟悉实体框架,目前正努力尝试使用这种编程范式。我有一个查询,我想在实体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
我可以从两个表中获取记录,但只要使用navigation属性添加第三个表,我的get error表类别就不会加载到当前上下文中。我正在使用.NET3.5。请记住,EDM V2没有外键,我认为遍历表关系的唯一方法是导航属性

任何帮助都将不胜感激

谢谢


如果使用Coder74,则应该能够装载此Linq查询。 我试着把它们放在一起,但在匆忙中,这样的测试并不复杂。 您可以使用此引用作为支持:

胡里奥·斯派德


W&S Soluções de Internet

为什么不向我们展示您的代码?我们怎么可能猜出这条消息的原因呢?除了上面的评论之外-为什么需要使用实体SQL而不是Linq to Entities?如果使用.Net 3.5,Linq to SQL可能是一个更好的选择。但是,导航属性并不是唯一的方法。您始终可以使用linq join语句。
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()