Linq连表查询

前言

本人小白程序员一枚 会点java也会点.net
最近在公司做项目当中用到了linq连表查询 因为好久没用linq了 有些语法我也忘记了
既然不会那就一个字学!

正文

在数据库中 表关系有一对一关系 一对多关系,多对多关系
我的需求是 我需要根据用户的id查询用户收藏的内容

表设计

收藏表

还一个内容表就不展示了 我需要根据用户id查询用户收藏的内容 根据内容id查询收藏的内容

代码实现

        /// <summary>
        /// 根据用户id查询收藏的资源信息
        /// </summary>
        /// <param name="userid"></param>
        /// <returns></returns>
        /// <exception cref="NotImplementedException"></exception>
        public async Task<List<Resource>> GetCollectionResources(Guid userid, int skipCount, int maxResultCount)
        {
            var result = from resources in (await GetDbContextAsync()).Resources 
                         join cr in (await GetDbContextAsync()).Collections 
                         on resources.Id equals cr.ResourcesId
                         where cr.Type == CollectiosTypes.Resource && cr.CreatorId == userid
                         select resources;

            var list = await result.ToListAsync();

            var tolist = await result
            .OrderByDescending(m => m.CreationTime)
            .Skip(skipCount)
            .Take(maxResultCount)
            .ToListAsync();
            return tolist;
        }
posted @ 2022-06-28 22:44  赵福浩  阅读(303)  评论(0编辑  收藏  举报