我使用asp.net,c#和EF4。

我对此LINQ查询感到困惑:

  var queryContents = from a in context.CmsContentsAssignedToes
                    where a.UserId == myUserGuid
                    join cnt in context.CmsContents
                    on a.ContentId equals cnt.ContentId
                    where cnt.TypeContent == myTypeContent & cnt.ModeContent == myModeContent
                    select cnt;


我想用LINQ方法语法编写等效项以检索CmsContents。

在我的概念模型中,有两种实体类型:


CmsContent
CmsContentsAssignedTo


及其实体集:


CmsContents
CmsContentsAssignedToes


和导航属性:


在CmsContent中-> CmsContentsAssignedTo返回:-> CmsContentsAssignedTo的实例
在CmsContentsAssignedTo中-> CmsContent返回:-> CmsContent的实例


你知道怎么做吗?我尝试了一天以上,但无法解决!

谢谢你的时间!

最佳答案

等效的方法语法为:

 var queryContents = context.CmsContentsAssignedToes
                            .Where(a => a.UserId == myUserGuid)
                            .Join(context.CmsContents,
                                  a => a.ContentId,
                                  cnt => cnt.ContentId,
                                  (a, cnt) = new { a, cnt })
                            .Where(z => z.cnt.TypeContent == myTypeContent &
                                        z.cnt.ModeContent == myModeContent)
                            .Select(z => z.cnt);


请参阅我的Edulinq blog post on query expressions以获取有关其工作原理的更多详细信息,尤其是“ z”的来源(它并不是真正的“ z”;它没有名称,因为它是透明标识符)。

10-04 11:08