Oql实体转自定义对象
返回单体:

GroupEnvironmentDTO 是自定义的一个DTO,
GroupEnvironmentEntity.MapToPOCO(dto); 把上述查出来的对象转换为DTO
返回实体集合:(如果把实体本身当做一个集合的话,前台接受出来的json数据,虽然
数据正确,但是格式看起来不太爽)

涉及的dll包
using PWMIS.DataMap.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using PWMIS.Core.Extensions;
using PWMIS.DataProvider.Data;
using PWMIS.DataProvider.Adapter;
using TransferRepository.Entitys;
using TransferRepository;
using System.Net;
using Newtonsoft.Json;
using System.IO;
using AuditWorkRepository.Entitys.EntityDTO;
using AuditWorkBLL;
using System.Configuration;
using System.Net.Http;
using System.Net.Http.Headers;
using A1000;
注: list是上述oql查询出来的结果集,AuditProceDureDTO是自定义的一个类,
item1 是集合中的实体对象,
item1.MapToPOCO(proDTO)
listpro是一个自定的 List<AuditProcedureDTO> listpro =new List<AuditProcedureDTO>();
循环的过程中添加完,最后返回一个集合就ok了, 这样的话就不会出现奇奇怪怪的json数据了、
(导致出现奇怪的JSON数据,是因为实体中右getProperty(读),setProperty(写)俩个属性导致而成。
所以说尽量不要偷懒,老老实实的定义个临时类)
另外一种查询的方式:
EntityContainer ec = new EntityContainer(t, db);
dto = ec.MapToList<ScriptDTO>(() => new ScriptDTO()
{
Name = item.ManuscriptName,
WhetherGroup = work.WhetherGroup }).FirstOrDefault();
下方就是不转自定义类 返回的数据结果



多条件查询:
OQLCompareFunc cmpFun = cmp =>
{
#region
OQLCompare cmpResult = new OQLCompare();
cmpResult = cmpResult & cmp.Comparer(poj.TerminationProject, "=", Constant.EnableProject)
.Comparer(poj.ID, "in", listguid.ToArray()); #endregion
#region 检索条件
if (!string.IsNullOrEmpty(AuditProjectQueryCriteria.ProjectName))
{
cmpResult = cmpResult & cmp.Comparer(poj.ProjectName, "like", "%" + AuditProjectQueryCriteria.ProjectName + "%"); //项目名称
}
if (AuditProjectQueryCriteria.RiskLevel > 0)
{
cmpResult = cmpResult & cmp.Comparer(poj.RiskLevel, "=", AuditProjectQueryCriteria.RiskLevel); //风险等级
}
if (AuditProjectQueryCriteria.IndustryType > 0)
{
cmpResult = cmpResult & cmp.Comparer(poj.IndustryType, "=", AuditProjectQueryCriteria.IndustryType); //行业类型
}
if (AuditProjectQueryCriteria.IsHeadquartersReview > 0)
{
cmpResult = cmpResult & cmp.Comparer(poj.IsHeadquartersReview, "=", AuditProjectQueryCriteria.IsHeadquartersReview); //是否复核总部
}
if (!string.IsNullOrEmpty(AuditProjectQueryCriteria.AuditStartDate))
{
cmpResult = cmpResult & cmp.Comparer(poj.AuditStartDate, ">", Convert.ToDateTime(AuditProjectQueryCriteria.AuditStartDate)); //开始时间
}
if (!string.IsNullOrEmpty(AuditProjectQueryCriteria.AuditEndDate))
{
cmpResult = cmpResult & cmp.Comparer(poj.AuditEndDate, "<", Convert.ToDateTime(AuditProjectQueryCriteria.AuditEndDate)); //结束
}
if (AuditProjectQueryCriteria.ManuscriptTemplateName != null)
{
cmpResult = cmpResult & cmp.Comparer(poj.ManuscriptTemplateName, "like", "%" + AuditProjectQueryCriteria.ManuscriptTemplateName + "%");//底稿名称
}
if (AuditProjectQueryCriteria.NoteAppendedTypeName != null)
{
cmpResult = cmpResult & cmp.Comparer(poj.NoteAppendedTypeName, "like", "%" + AuditProjectQueryCriteria.NoteAppendedTypeName + "%"); //附注名称
}
if (!string.IsNullOrEmpty(AuditProjectQueryCriteria.ProjectCreateDate))
{
cmpResult = cmpResult & cmp.Comparer(poj.ProjectCreateDate, "=", Convert.ToDateTime(AuditProjectQueryCriteria.ProjectCreateDate)); //附注名称
}
if (!string.IsNullOrEmpty(AuditProjectQueryCriteria.ManagerProjectName))
{
cmpResult = cmpResult & cmp.Comparer(poj.ManagerProjectName, "=", AuditProjectQueryCriteria.ManagerProjectName); //被审计单位名称
}
if (AuditProjectQueryCriteria.SubmitState > 0)
{
cmpResult = cmpResult & cmp.Comparer(poj.SubmitState, "=", AuditProjectQueryCriteria.SubmitState); //状态
}
#endregion
return cmpResult;
};
链接字符串:
public AuditworkProjectBll(string dbname)
{
context = new AuditWorkDbContext(dbname);
db = context.CurrentDataBase;
pbll = new AuditPlanBLL(dbname);
docbll = new DockingClassBll(dbname);
}
private AuditWorkDbContext context;// 数据上下文
private AdoHelper db;
AuditPlanBLL pbll = null;
AdoHelper db1 = MyDB.GetDBHelperByConnectionName("AuditManage");
DockingClassBll docbll = null;
AdoHelper asd = MyDB.GetDBHelperByConnectionName("Transfer");
Oql实体转自定义对象的更多相关文章
- ArrayList去除重复元素(包括字符串和自定义对象)
1.去除重复字符串 package com.online.msym; import java.util.ArrayList; import java.util.Iterator; @SuppressW ...
- jpa 联表查询 返回自定义对象 hql语法 原生sql 语法 1.11.9版本
-----业务场景中经常涉及到联查,jpa的hql语法提供了内连接的查询方式(不支持复杂hql,比如left join ,right join). 上代码了 1.我们要联查房屋和房屋用户中间表,通过 ...
- Java:集合,对列表(List)中的自定义对象按属性(字段)排序(正序、倒序)的方法
1. 要求 对列表(List)中的自定义对象,要求能够按照对象的属性(字段)进行排序(正序.倒序). 如:用户对象(Member)有用户名(username).级别(level).出生日期(birth ...
- Spring Data Jpa 查询返回自定义对象
转载请注明出处:http://www.wangyongkui.com/java-jpa-query. 今天使用Jpa遇到一个问题,发现查询多个字段时返回对象不能自动转换成自定义对象.代码如下: //U ...
- [Abp vNext 源码分析] - 5. DDD 的领域层支持(仓储、实体、值对象)
一.简要介绍 ABP vNext 框架本身就是围绕着 DDD 理念进行设计的,所以在 DDD 里面我们能够见到的实体.仓储.值对象.领域服务,ABP vNext 框架都为我们进行了实现,这些基础设施都 ...
- Vertx使用EventBus发送接受自定义对象
先看官方文档步骤: 需要一个编解码器,看源码: 可见内置了需要数据类型的实现,所以发送其他消息可以发送,但是如果发送自定义对象就需要自己实现编解码逻辑了 一 自定义编解码器 /** * 自定义对象编解 ...
- Spring Data JPA 自定义对象接收查询结果集
Spring Data JPA 简介 Spring Data JPA 是 Spring 基于 ORM 框架.JPA 规范的基础上封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据库的访问和 ...
- JavaScript 自定义对象
在Js中,除了Array.Date.Number等内置对象外,开发者可以通过Js代码创建自己的对象. 目录 1. 对象特性:描述对象的特性 2. 创建对象方式:对象直接量.new 构造函数.Objec ...
- Sqlite 存储自定义对象
在iOS中如果想保存自定义对象,要让自定义对象实现NSCoding接口并实现方法-(id)initWithCoder:(NSCoder *)coder和-(void)encodeWithCoder:( ...
随机推荐
- Jupyter notebook用法
参考官网文档:https://jupyter-notebook.readthedocs.io/en/stable/public_server.html 0.介绍jupyter notebook (此前 ...
- ownCloud问题处理server replied 423 Locked to
打开owncloud 数据库备份:oc_file_locks表(备份免错哦)然后清空该表,客户端同步一次,故障解决 owncloud大的数据无法同步..
- [ZJOI2019]Minimax搜索
先求出根节点的权值\(w\).根据套路,我们对于每个\(k\),计算\(w(s)\leq k\)的方案数,差分得到答案.为了方便,接下来考虑计算概率而不是方案数. 可以发现,对于一个给定的有解的子集, ...
- 解决TeamViewer无法按给定网络地址联系伙伴
说明:这种现象一般是断网后DNS改变了,或者路由重启了没有重启网络配合导致的. 解决方法: 1.Windows: ipconfig /flushdns 2.Linux: /etc/rc.d/init. ...
- sql server 2008 R2 配置管理工具打不开
使用 sql server 配置管理工具是报如下错误: 解决方法: 1 找出 sqlmgmproviderxpsp2up.mof 这个文件的位置 2 以管理员身份运行 mofcomp &quo ...
- 搭建类似生产环境的RAC
install the necessary packages yum install -y 创建组.用户和目录 创建用户组 groupadd -g 2000 oinstallgroupadd -g 2 ...
- hibernate关联关系的crud2
hibernate关联关系的CRUD操作,解释都在注释里了,讲了fetchType.cascade. User类: package com.oracle.hibernate; import javax ...
- 快速创建SpringBoot+SSM解析
此处使用IDEA快速搭建SpringBoot应用,首先用SpringBoot搭建WEB工程: 然后点击Next生成项目,首次生成可能有点慢,下次创建的时候就会快很多,生成后的目录结构如下: 我们更改下 ...
- 四大组件之Service
1 通过startService 1.1 与调用者相对独立,没有返回,用于播放音乐,下载文件 1.2 如果是调用者自己直接退出而没有调用stopService的话,Service会一直在后台运行.下次 ...
- 在eclipse中启动Tomcat报端口被占用的错误
安装配置好Tomcat之后,在浏览器中输入localhost,能正取打开页面.然后在eclipse中建立项目,创建Servlet之后,启动Tomcat,报端口被占用的错误.如图: 原因:原来已经启动了 ...