当前位置: 首页 > news >正文

南京高端网站建设工作室自己做的网站二维码怎么做的

南京高端网站建设工作室,自己做的网站二维码怎么做的,福州市工程建设质量管理网站,做围棋题网站在日常使用EF框架查询数据库时#xff0c;有时传入的参数为空,那么我们应该把该条件排除#xff0c;不应列入组装的sql中#xff0c;本篇文件以分页查询为例介绍EF框架的单表、多表的多条件查询#xff0c;参数为空时排除条件。 首先我们要有派生自DBContext类的数据上下文…在日常使用EF框架查询数据库时有时传入的参数为空,那么我们应该把该条件排除不应列入组装的sql中本篇文件以分页查询为例介绍EF框架的单表、多表的多条件查询参数为空时排除条件。 首先我们要有派生自DBContext类的数据上下文类这个类代表数据库连接和数据库模型 public class MyDbContext : DbContext {public DbSet人员信息 PersonBasic{ get; set; }public DbSet考核信息 Assess{ get; set; } }两个示例的实体类型 用于映射到数据库表的实体类型。也就是数据库的表和字段 public class 人员信息 {public int Id { get; set; }//idpublic string Name { get; set; }//姓名public string Sex{ get; set; }//性别public string Age{ get; set; }//年龄public string IdNumber{ get; set; }//身份证号 与B表身份证相同 可关联public string State{ get; set; }//状态//... } public class 考核信息 {public int Id { get; set; }public string Name { get; set; }public string Sex{ get; set; }public string Age{ get; set; }public string IdNumber{ get; set; }//身份证号[Column(TypeName date)]public DateTime? Time{ get; set; }//考核时间public string OrganCode{ get; set; }//机构编号//... }入参实体 public class InputDto{public string SearchText{get;set;}//一个参数可查询多个条件public string Sex{get;set;}public string StartTime{get;set;}public string EndTime{get;set;}public string OrganCode{get;set;}public string State{get;set;}public string Number{get;set;}public int PageIndex{get;set;}public int PageIndex{get;set;} }结果返回实体 public class OutPutDto {public int Id { get; set; }public string Name { get; set; }public string Sex{ get; set; }public string Age{ get; set; }public string State{ get; set; }//... }使用dbcontext上下文类进行查询 namespace Test {public class AppServiceTest{private readonly MyDbContext _context;public AppServiceTest(MyDbContext context){this._context context;}/// summary/// 获取列表 /// /summary/// param nameinput/param/// returns/returns[Route(api/Test/GetList)]public dynamic GetListAsync(InputDto input){return GetEFList(input,_context); }} } using (var context new MyDbContext()) {var entities context.Entities.ToList(); }/// summary/// 原生ef查询/// /summary/// param nameinput/param/// returns/returnspublic PagedResultDtoOutPutDto GetEFList(InputDto input, MyDbContext _context){//机构信息传来的形式为 37,38,39string[] organ input.OrganCode?.Split(,);IQueryable考核信息 query null;if (string.IsNullOrWhiteSpace(input.State)){DbSet考核信息 db _context.考核信息;// 定义查询条件 单表 lambda表达式查询//解释一下改表达式的意思首先db表示数据库的“考核信息”表//whereif用于判断input实体传来的参数是否为空如果不为空则拼接该条件//第一个whereif中代表着姓名字段开头包含input.SearchText传来的参数当然也可以使用Contains方法完整意思为“姓名”包含参数 或 “身份证号”包含参数//whereif.whereif 就代表着一直and//第二个whereif代表,如果传开的参数不为空那拼接sql 性别传来的参数 例sex男//第三个whereif,参数不为空时时间大于等于传来的参数由于数据库是datetime类型所以要转换//第四个whereif 同上//第五个whereif 代表数据库中的in 方法的开始先将OrganCode转换为数组然后organ.Contains(x.OrganCode)使用//最后一个whereif 如果Number大于1 那么根据身份证去重(一个人会有多条数据) 查最大的idquery db.WhereIf(!string.IsNullOrWhiteSpace(input.SearchText), x x.姓Name.StartsWith(input.SearchText) || x.IdNumber.StartsWith(input.SearchText)).WhereIf(!string.IsNullOrWhiteSpace(input.Sex), x x.Sex input.Sex).WhereIf(!string.IsNullOrWhiteSpace(input.StartTime), x x.Time DateTime.Parse(input.StartTime))//input.StartTime.AdaptDateTime().WhereIf(!string.IsNullOrWhiteSpace(input.EndTime), x x.Time DateTime.Parse(input.EndTime)).WhereIf(!string.IsNullOrWhiteSpace(input.OrganCode), x organ.Contains(x.OrganCode)).WhereIf(input.Number 0, x db.GroupBy(y y.IdNumber).Where(group group.Count() input.Number).Select(group group.Max(y y.Id)).Contains(x.Id)).OrderByDescending(aa.Id);//将以上表达式转换为sql为//select * from 考核信息 where (Name like 王% or IdNumber like 王%) and Sex男 and OrganCode in(37,38) and Id in(select max(Id) from 考核信息 group by IdNumber having count(*)1) Order By Id Desc//当然如果Number参数为0对应的sql为//select * from 考核信息 where (Name like 王% or IdNumber like 王%) and Sex男 and OrganCode in(37,38) Order By Id Desc}else{DbSet考核信息 kh _context.考核信息;DbSet人员信息 basic _context.人员信息;// 定义查询 多表 linq查询query from a in kh join b in basic on a.IdNumber equals b.IdNumberwhere(string.IsNullOrWhiteSpace(input.SearchText) || a.Name.StartsWith(input.SearchText) || a.IdNumber.StartsWith(input.SearchText)) (string.IsNullOrWhiteSpace(input.Sex) || a.Sex input.sex) (string.IsNullOrWhiteSpace(input.StartTime) || a.Time DateTime.Parse(input.StartTime)) (string.IsNullOrWhiteSpace(input.EndTime) || a.Time DateTime.Parse(input.EndTime)) (string.IsNullOrWhiteSpace(input.State) || b.State input.State) (input.Number 0 || (from x in khgroup x by x.IdNumber into gwhere g.Count() 1select g.Max(x x.Id)).Contains(a.Id))orderby a.Id descendingselect a;//以上linq表达式对应的sql为//select * from 考核信息 a Inner JOIN 人员信息 b ON a.IdNumber b.IdNumber where (a.Name like 王% or a.IdNumber like 王%) and a.Sex男 and a.OrganCode in(37, 38) and a.Id in(select max(Id) from 考核信息 group by IdNumber having count(*)1) Order By a.Id Desc//当然如果number为0时//select * from 考核信息 a Inner JOIN 人员信息 b ON a.IdNumber b.IdNumber where (a.Name like 王% or a.IdNumber like 王%) and a.Sex男 and a.OrganCode in(37, 38) Order By a.Id Desc}int count query.Count();//统计总行数// 分页查询数据var pageIndex input.PageIndex;var pageSize input.PageSize;var pageData query.Skip(pageSize * (pageIndex - 1)).Take(pageSize).ToList();//这里使用了Mapster中间件可以在包控制管理工具中安装 然后using Mapster;//意思是将pageData映射成OutPutDtoListOutPutDto aaa pageData.AdaptListOutPutDto();return new {itemspageData,totalcount};} end 看完此篇文章后是不是感觉瞬间豁然开朗
http://www.hkea.cn/news/14540042/

相关文章:

  • 数据来源于网站怎么做参考文献马鞍山网站建设文
  • 购物网站开发案例下载新浪体育最新消息
  • 中卫网站建设多少钱网站源码生成器
  • 上海品质网站建设多边形网站
  • 怎么黑网站设计之家官网首页
  • 中国建设银行云浮分行网站简单电商网站模板
  • 苏州市吴中区住房和城乡建设局网站想建设一个网站
  • 家具网站的建设湛江做网站软件
  • 门户营销型网站搭建济南房产网安居客
  • 怎么做网盘搜索引擎网站黑龙江人事考试网
  • 云互联的网站名字电脑怎做单页网站
  • 建设银行网站怎么登陆不了了企业网上管理系统
  • 电影网站建设方案ppt石家庄建设信息网必须交费吗
  • 重庆电子网站建设网站后台根据前端做吗
  • 站长工具ip地址网站建设 信科网络
  • 常州建网站怎么知道网站是什么开源做的
  • 北京网站建设产品介绍南阳网站关键词推广
  • php html5企业网站源码谷歌官方网站注册
  • wordpress插件video player信息流优化师怎么入行
  • net framework可以用来做网站吗百度seo优化包含哪几项
  • 网站建设捌金手指花总十三重庆网站seo案例
  • 备案网站有哪些微信销售平台
  • 北京网站网页设计自己建设网站网站赚钱
  • 音响厂家东莞网站建设部队网站源码
  • 太原论坛建站模板建筑工程公司简介模板范文
  • 会展相关网站建设北京微信网站开发报价
  • 学做PPT报告的网站如何在国外做网站
  • 微微网站建设广州网站制
  • 网站的基本概念网络培训的好处
  • 哈尔滨网站制作方案学销售从哪里开始