使用实体框架4.1的多表联接,我应该使用lambda还是LINQ?

| 我是实体框架的新手,我正尝试转换多表联接以使用实体框架。原始的SQL看起来像这样
JOIN tab_NewsCommunities S1 ON S1.News_ID = tab_News.NewsID
inner join tab_communities com on S1.Community_ID = com.Community_ID and com.RecordStatus_ID = 2
JOIN tab_Communities c ON S1.Community_ID = c.Community_ID
JOIN tab_Favorites uf ON S1.Community_ID = uf2.Community_ID
        WHERE uf.[User_ID] = @UserId 
新的Entity模型看起来像这样,我已经简化了一些。谁能帮助我将sql转换为LINQ或lambda?我在网上看到了很多示例,但是它们都是单表联接。谢谢     
已邀请:
        我建议您阅读CRAIG STUNTZ的这篇博客文章。这个想法是,只要您在模型中具有正确的关系,就可以简单地使用导航链接来选择所有属性,而无需依赖JOIN运算符。老实说,这就是LINQ的优点,如果您的模型可以做到,为什么还要加入自己的行列。     
        只要您在EF设计器中定义了关系黑白表,就不必再次进行联接。只需要渴望加载关联的实体。
var result =  context.News.Include(\"NewsCommunity.Communities\")
                          .Include(\"NewsCommunity.Favorites\")
                          .Where( n => n.NewsCommunity.Favorites.Any(f => f.UserId == userId));       
    
        您可以在Entity方法的最新版本中的Include方法内使用lamda表达式。然后,您可以使用第二选择来深入了解关系。
var result = context.News.Include(x=>x.NewsCommunity.select(z=>z.Communities)).Where(...)
    

要回复问题请先登录注册