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:( ...
随机推荐
- IntelliJ IDEA 18 周岁,吐血推进珍藏已久的必装插件
IntelliJ IDEA是目前最好最强最智能的Java IDE,前几天,他刚刚年满18岁.  本文,给大家推荐几款我私藏已久的,自己经常使用的,可以提升代码效率的插件. IDEA插件简介 常见的I ...
- 物联网学习之路——IoT概况
物联网IoT概念 IoT,Internet of Things,即物物相连的互联网.它包含两层意思:一,以互联网为基础:二,物物相连,实现信息的交换和通信.物联网通过智能感知.识别技术与普适计算等通信 ...
- 牛客OI周赛8-提高组A-用水填坑
牛客OI周赛8-提高组A-用水填坑 题目 链接: https://ac.nowcoder.com/acm/contest/403/A 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制: ...
- SpringMVC初写(二)映射类型、限制和数据绑定
映射路径 a)映射路径的概述 所谓的映射路径,就是匹配请求路径和执行方法关系的路径 请求路径:http://localhost:8080/springmvc-demo-cofig/say.do 映射路 ...
- Mac下配置git环境和客户端SourceTree+Git常用命令大全(Mac 10.12)
前言: 如果不想折腾,直接下载GitHub桌面端,高度集成git,不需要学习git的任何命令. https://desktop.github.com/ 一.配置git环境 1.上官网https://g ...
- (转)Heartbeat+DRBD+MySQL高可用方案
原文:http://www.cnblogs.com/gomysql/p/3674030.html 1.方案简介 本方案采用Heartbeat双机热备软件来保证数据库的高稳定性和连续性,数据的一致性由D ...
- ActiveMQ安装及使用
1 安装环境 1.需要jdk2.安装Linux系统.生产环境都是Linux系统. 2 安装步骤 第一步: 把ActiveMQ 的压缩包上传到Linux系统.第二步:解压缩. 第三步:关闭防火墙 临时关 ...
- Ubuntu 10.10, 11.04, 11.10这三个版本无法从优盘启动
问题:Ubuntu 10.10, 11.04, 11.10这三个版本无法从优盘启动 解决:从U盘启动安装的时候,会卡住不动.搞定办法相当简单,修改syslinux/syslinuxfg文件:将defa ...
- Linux 两个文件求交集、并集、差集
一.交集 sort a.txt b.txt | uniq -d 二.并集 sort a.txt b.txt | uniq 三.差集 a.txt-b.txt: sort a.txt b.txt b.tx ...
- echarts实现自动轮播tooltip
最近需要实现echarts图形中hover效果轮播(即tooltip在各个数据点上轮流显示)的功能,以下就是我学习的一个过程,只是提供思路,具体场景需要自己修改.(仅针对echarts 2.2.7及以 ...