使用linq对ado.net查询出来dataset集合转换成对象(查询出来的数据结构为一对多)
public async Task<IEnumerable<QuestionAllInfo>> GetAllQuestionByTypeIdAsync(int id)
{
string sql = "SELECT q.Id as questionId,i.Id as instanceId,q.name as questionName,q.Intention as questionIntention,i.`Name` as instancesName FROM `t_questions` q LEFT JOIN t_instances i on q.Id = i.QuestionId WHERE q.QuestionTypeId = @p1";
MySqlParameter[] mySqlParameters = new MySqlParameter[] { new MySqlParameter { MySqlDbType = MySqlDbType.Int32, Value = id, ParameterName = "@p1" } };
var dataSet = await SQLHelp.ExecuteQueryAsync(sql, mySqlParameters);
var table = dataSet.Tables[];
List<Temp> temps = new List<Temp>();
if (table.Rows.Count <= )
{
return null;
}
foreach (DataRow row in table.Rows)
{
temps.Add(new Temp
{
QuestionId = (int)row["questionId"],
QuestionIntention = row["questionIntention"].ToString(),
QuestionName = row["questionName"].ToString(),
InstanceId = IsIntDBNULL(row["instanceId"]),
InstanceName = row["instancesName"].ToString()
}); ;
}
var result = temps.GroupBy(t => new { t.QuestionId, t.QuestionIntention, t.QuestionName })
.Select(question =>
new QuestionAllInfo
{
QuestionId = question.Key.QuestionId,
QuestionName = question.Key.QuestionName,
QuestionIntention = question.Key.QuestionIntention,
Instances = question.Select(q => new Instance
{
Id = q.InstanceId,
Name = q.InstanceName,
QuestionId = q.QuestionId
})
});
return result;
}
要转换成的实体对象
class Temp
{
public int QuestionId { get; set; }
public string QuestionIntention { get; set; }
public string QuestionName { get; set; }
public int? InstanceId { get; set; }
public string InstanceName { get; set; }
} public class QuestionAllInfo
{
public int QuestionId { get; set; }
public string QuestionIntention { get; set; }
public string QuestionName { get; set; }
public IEnumerable<Instance> Instances { get; set; }
} public class Instance
{
public int Id { get; set; }
public string Name { get; set; }
public int QuestionId { get; set; }
}
使用linq对ado.net查询出来dataset集合转换成对象(查询出来的数据结构为一对多)的更多相关文章
- C#中对象,字符串,dataTable、DataReader、DataSet,对象集合转换成Json字符串方法。
C#中对象,字符串,dataTable.DataReader.DataSet,对象集合转换成Json字符串方法. public class ConvertJson { #region 私有方法 /// ...
- C#中利用LINQ to XML与反射把任意类型的泛型集合转换成XML格式字符串
在工作中,如果需要跟XML打交道,难免会遇到需要把一个类型集合转换成XML格式的情况.之前的方法比较笨拙,需要给不同的类型,各自写一个转换的函数.但是后来接触反射后,就知道可以利用反射去读取一个类型的 ...
- 使用HIBERNATE的SQL查询并将结果集自动转换成POJO
在某些场合下,我们可能想使用HIBERNATE的框架提供的SQL查询接口,但是,由于实体没有做映射,HIBERNATE不能把结果集转换成你想要的List<POJO>,本文讨论如何在这种情况 ...
- c#实现list,dataset,DataTable转换成josn等各种转换方法总和
using System;using System.Collections.Generic;using System.Text;using System.Data;using System.Refle ...
- DataSet 反射转换成 List<T>
/// <summary> /// DataSet转换成指定返回类型的实体集合 /// </summary> /// <typeparam name="T&qu ...
- mysql 查询 int类型日期转换成datetime类型
数据库日期类型是int类型的,该查询结果是datetime类型的 SELECT from_unixtime( `时间列名` ) FROM 表名 如果原来类型是datetime类型,查询结果要是int类 ...
- FMDB使用的一点心得:数据库创建、制表、查询等以及image转换成二进制nsdata保存到数据库中
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u012951123/article/details/36871955 <span style= ...
- 十四、C# 支持标准查询运算符的集合接口
支持标准查询运算符的集合接口. System.Linq.Enumeralbe类提供的一些常用的API 来执行集合处理 1.匿名类型 2.隐匿类型的局部变量 3.集合初始化器 4.集合 5.标准查询运算 ...
- C#中的DataSet、string、DataTable、对象转换成Json的实现代码
C#中对象,字符串,dataTable.DataReader.DataSet,对象集合转换成Json字符串方法. public class ConvertJson { #region 私有方法 /// ...
随机推荐
- 目标检测论文解读1——Rich feature hierarchies for accurate object detection and semantic segmentation
背景 在2012 Imagenet LSVRC比赛中,Alexnet以15.3%的top-5 错误率轻松拔得头筹(第二名top-5错误率为26.2%).由此,ConvNet的潜力受到广泛认可,一炮而红 ...
- Rust中的闭包
这个功能有点高级, 暂时理解不完全, 先把代码练正确吧. use std::thread; use std::time::Duration; struct Cacher<T> where ...
- Go语言调度器之调度main goroutine(14)
本文是<Go语言调度器源代码情景分析>系列的第14篇,也是第二章的第4小节. 上一节我们通过分析main goroutine的创建详细讨论了goroutine的创建及初始化流程,这一节我们 ...
- Go语言goroutine调度器初始化(12)
本文是<Go语言调度器源代码情景分析>系列的第12篇,也是第二章的第2小节. 本章将以下面这个简单的Hello World程序为例,通过跟踪其从启动到退出这一完整的运行流程来分析Go语言调 ...
- mysql基础sql进阶
回顾前面的基础命令语句 修改数据表 添加字段: alter table 表名 add 字段名 列类型[not null|null][primary key][unique][auto_incremen ...
- 1. jenkins 安装部署
参考文档: https://jenkins.io/zh 准备环境 - jdk 路径: https://www.oracle.com/technetwork/java/javase/a ...
- python27期尚哥讲TFTP:
TFTP介绍 :TFTP(Trivial File Transfer Protocol,简单⽂件传输协议)是TCP/IP协议簇中的⼀个⽤来在客户端与服务器之间进⾏简单⽂件传输的协议使用tftp这个协议 ...
- djang小项目过程中的小问题 01(django中的configrarion配置、django自带命名规范)
不知道为什么,明明照着做,但是我就会遇到一些错误问题,但是我觉着自己生下来就是解决问题的. ##1. 第一个是在django运行时,没有配置configration, 这个时候我添加一个django ...
- zz全面拥抱Transformer
放弃幻想,全面拥抱Transformer:自然语言处理三大特征抽取器(CNN/RNN/TF)比较 在辞旧迎新的时刻,大家都在忙着回顾过去一年的成绩(或者在灶台前含泪数锅),并对2019做着规划,当然也 ...
- zz模型剪枝
论文总结 - 模型剪枝 Model Pruning 发表于 2018-10-03 模型剪枝是常用的模型压缩方法之一.这篇是最近看的模型剪枝相关论文的总结. Deep Compression, Han ...