C# 使用linq中的表连接列表

C# 使用linq中的表连接列表,c#,linq,lambda,ef-code-first,C#,Linq,Lambda,Ef Code First,我有个问题。我在var类型变量中获取所有数据,然后希望以代码优先的方法应用与数据库表的联接。面对这个问题,大量的网上搜索和申请都失败了 var joinedData = from menuGroup in _menuGroupMenusRepository.GetAll() .Where(x => x.GroupId == input.GroupId) join menus in _menuRepository.GetAll() on m

我有个问题。我在var类型变量中获取所有数据,然后希望以代码优先的方法应用与数据库表的联接。面对这个问题,大量的网上搜索和申请都失败了

var joinedData = 
    from menuGroup in _menuGroupMenusRepository.GetAll()
        .Where(x => x.GroupId == input.GroupId)
    join menus in _menuRepository.GetAll() 
        on menuGroup.MenuId equals menus.Id
    join categSubcateg in _menuCategSubCategRepository.GetAll() 
        on menus.Id equals categSubcateg.MenuId
    join categ in _menuCategoryRepository.GetAll() 
        on categSubcateg.CategoryId equals categ.Id
    select new
    {
        CategoryId = categSubcateg.CategoryId,
        CategoryName = categ.Category,
    };
现在我想要
joinedData
变量与
MainMenuSort
表连接。
MainMenuSort表也有
groupid
categoryid

要执行连接,您只需执行以下操作

 var q=(from jd in joinedData 
         join mms in dataContext.MainMenuSort 
         on jd.CategoryId equals mms.CategoryId 
 select jd).ToList(); 
如果它是datatable,那么

 var q=(from jd in joinedData 
         join mms in dtMainMenuSort.AsEnumerable() 
         on jd.CategoryId equals mms.Field<int>("CategoryId")
 select jd).ToList();
var q=(来自joinedData中的jd)
在dtMainMenuSort.AsEnumerable()中加入彩信
在jd.CategoryId等于mms.Field(“CategoryId”)
选择jd.ToList();

要执行加入,只需执行以下操作

 var q=(from jd in joinedData 
         join mms in dataContext.MainMenuSort 
         on jd.CategoryId equals mms.CategoryId 
 select jd).ToList(); 
如果它是datatable,那么

 var q=(from jd in joinedData 
         join mms in dtMainMenuSort.AsEnumerable() 
         on jd.CategoryId equals mms.Field<int>("CategoryId")
 select jd).ToList();
var q=(来自joinedData中的jd)
在dtMainMenuSort.AsEnumerable()中加入彩信
在jd.CategoryId等于mms.Field(“CategoryId”)
选择jd.ToList();

这样可以吗?还是您需要其他解决方案?我建议您考虑使用导航属性(如果您的安装程序有导航属性)而不是连接。我正在检查这些解决方案。一旦完成,我会确认你。谢谢Hank Juharr。我喜欢这篇文章。但是以前的解决方案对我很有效。这样可以吗?或者您还需要其他解决方案吗?我建议您考虑使用导航属性(如果您的设置有导航属性)而不是连接。我正在检查这些解决方案。一旦完成,我会确认你。谢谢Hank Juharr。我喜欢这篇文章。但之前的解决方案对我有效。