Entity framework 查询

简介: 1.简单查询 2.多表查询 3.高级查询 public List GetUsers(string companyID, string userName, int skip, int limit) { var dc = new DbContext(); var query = (from c in dc.

1.简单查询

2.多表查询

3.高级查询

 
 public List<User> GetUsers(string companyID, string userName, int skip, int limit)
        {
            var dc = new DbContext();
            var query = (from c in dc.Users
                         join d in dc.UserRoles on c.Id equals d.UserId
                         join e in dc.Roles on d.RoleId equals e.Id
                         where c.CompanyId == companyID && c.IsDeleted == false && (string.IsNullOrWhiteSpace(userName) ? true : c.UserName.Contains(userName))
                         orderby c.Id
                         select new
                         {
                             Id = c.Id, 
                             UserName = c.UserName, 
                             RoleName = e.Name
                         }).Skip(skip).Take(limit).ToList()
                         .Select(x => new User
                         {
                             Id = x.Id, 
                             UserName = x.UserName, 
                             RoleName = x.RoleName
                         }).ToList();

            return query;
        }

这个查询是一个包含了条件过滤、分页、多表、转换为实体列表的综合查询,缺点是条件过滤无法动态化

 

相关文章
|
JavaScript 测试技术 Linux
|
机器学习/深度学习 Rust JavaScript
Rust 笔记:Rust 语言中应用正则表达式
Rust 笔记:Rust 语言中应用正则表达式
783 1
|
存储 前端开发 安全
|
算法 Java Linux
深入理解JVM - Shenadoah
深入理解JVM - Shenadoah
178 1
|
存储 atlas 云栖大会
2023年云栖大会Ganos Session简报
阿里云时空数据库Ganos于2023云栖大会发布了年度大版本v6.0和可视化产品Atlas,欢迎体验
|
开发者
备案域名核验问题| 学习笔记
快速学习备案域名核验问题。
备案域名核验问题| 学习笔记
|
存储 设计模式 消息中间件
Jaeger插件开发及背后的思考
本文主要介绍Jaeger最新的插件化后端的接口以及开发方法,让大家能够一步步的根据文章完成一个Jaeger插件的开发。此外SLS也推出了对于Jaeger的支持,欢迎大家试用。
1025 0
|
缓存 监控 NoSQL
618 大促来袭,浅谈如何做好大促备战
如何有效利用云产品做好我们的业务大促备战,这是一个大家都比较关心的问题。今天趁着 618 大促来袭前,谈一谈我们所积累的最佳实践。
618 大促来袭,浅谈如何做好大促备战
类设计:设计卖车的4S店
class Car(object): # 定义车的方法 def move(self): print('---车在移动---') def stop(self): print('---停车---') # 定义一个销售车的店类 class Car...
796 0