Dapper多表查询时子表字段为空
最近在学习使用Dapper时百度了一篇详细使用教程,在做到多表查询的时候,出现如下情况。

使用的SQL如下,
SELECT * FROM [Student] AS A INNER JOIN [Junior] AS B ON B.ID=A.JuniorId
随后以为是自己写错了,查了好多地方没有找到原因。后来找了大神一线码农的关于Dapper的文章中提到了spliton的概念,其中讲述了关于Dapper如何获取实体的描述(如下这图所示),才知道了有可能是字段顺序出了问题

随后发现ID出现了最后一列,是由于当初在创建各个表的时候ID没有设置自增,随后又把列给删了后重新使用 “alter table 表 add 列 int IDENTITY(1,1) NOT NULL” 新增了自增列。


随后,将查询条件给成如下结果才解决了这个问题。
SELECT a.ID,a.SID,a.Name,a.JuniorId,b.ID,b.Code,b.Name
FROM [Student] AS A
INNER JOIN [Junior] AS B ON B.ID=A.JuniorId

这个问题确实比较简单,出现的时候找了好久,记录下来也给自己一个提醒。
注:多表查询 splitOn就是Dapper对DataReader进行”从右到左“的扫描,这样就可以从sequent中获取到一个subsequent,然后遇到设置的splitOn
文中参考链接
https://ithelp.ithome.com.tw/articles/10198210?sc=rss.qu
https://www.cnblogs.com/huangxincheng/p/5832281.html
本文摘抄至:http://www.mamicode.com/info-detail-2414354.html
Dapper多表查询时子表字段为空的更多相关文章
- THINKPHP_(2)_TP模型的多表关联查询和多表字段的关键字搜索。
问题: 上述内容中,标题和学年属于一个数据表.分类则属于另外一个数据表,并且是利用id关联后,另外一个数据表中的title字段. 需要设置关键字搜索,实现多表关联查询和多表字段的关键字搜索. 解决方法 ...
- day05 连表查询与子查询
day05 连表查询与子查询 昨日内容回顾 表关系之一对一 换位思考之后得出两边都是不可以 要么是没有关系,要么是一对一 一对一的表关系外键虽然建在哪个都可以,但是建议建在查询频率多的表上 # 外键其 ...
- MYSQL - 外键、约束、多表查询、子查询、视图、事务
MYSQL - 外键.约束.多表查询.子查询.视图.事务 关系 创建成绩表scores,结构如下 id 学生 科目 成绩 思考:学生列应该存什么信息呢? 答:学生列的数据不是在这里新建的,而应该从学生 ...
- 外部表查询时出现ORA-29913和ORA-29400错误
create table t_ext_tab(id char(1),name char(6)) organization external( type oracle_loader default di ...
- day38 mycql 初识概念,库(增删改查),表(增删改)以及表字段(增删改查),插入更新操作
在Navicat中把已经生成的表逆向成模型 数据库上,右键-逆向数据库到模型 ego笔记: 增删改查 文件夹(库) 增 create database day43 charset utf8; 改 al ...
- MySQL--详细查询操作(单表记录查询、多表记录查询(连表查询)、子查询)
一.单表查询 1.完整的语法顺序(可以不写完整,其次顺序要对) (不分组,且当前表使用聚合函数: 当前表为一组,显示统计结果 ) select distinct [*,查询字段1,查询字段2,表达式, ...
- mysql查询操作之单表查询、多表查询、子查询
一.单表查询 单表查询的完整语法: .完整语法(语法级别关键字的排列顺序如下) select distinct 字段1,字段2,字段3,... from 库名.表名 where 约束条件 group ...
- MySQL的约束、多表查询、子查询
一.约束之主键约束 约束:约束是添加在列上的,用来约束列的. 1.主键约束(唯一标识):非空.唯一.被引用 当表的某一列被指定为主键后,该类就不能为空,不能有重复值出现 创建表时指定主键的两种方式: ...
- Oracle作业5——多表查询、子查询
一.基础练习: 1.查询和scott相同部门的员工姓名ename和雇用日期hiredate SELECT ENAME,HIREDATE FROM EMP WHERE DEPTNO=(SELECT DE ...
随机推荐
- leetcode题目1.两数之和(简单)
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组中同样的元 ...
- Error:java: 错误: 不支持发行版本 5
本文链接:https://blog.csdn.net/wo541075754/article/details/70154604 在Intellij idea中新建了一个Maven项目,运行时报错如下: ...
- DP&图论 DAY 3 上午
DP&图论 DAY 3 上午 状态压缩dp >状态压缩dp ◦状态压缩是设计dp状态的一种方式.◦当普通的dp状态维数很多(或者说维数与输入数据有关),但每一维总量很少是,可以将多维 ...
- leetcode 547朋友圈
方法一:染色法 类似于岛屿的个数也可以用染色法:通过深度优先搜索来做 使用一个数组来表示当前朋友a是否已经包含到已经遍历的朋友圈中,遍历所有的朋友,如果当前朋友没有在已经访问的朋友圈中,即visite ...
- 深度学习之NLP维基百科数据模型
知识点 """ 1) from gensim.model import Word2Vec import jieba 2) opencc :将繁体字转换为简体字 转换命令: ...
- flutter Could not find the built application bundle at build/ios/iphonesimulator/Runner.app
运行flutter run时报错 提示如下: Could not find the built application bundle at build/ios/iphonesimulator/Runn ...
- IPv4正则表达式
apache common-httpclient-4.5.2.jar package org.apache.http.conn.util; public class InetAddressUtils ...
- 使用Navicat为Oracle导入函数后函数显示红叉
上图是plsql中的截图 有可能是Navicat没有缓存过程,刷新试一试,不行的话,对导入的函数进行重新编译即可. 还发现一个问题是,Navicat导出的脚本里面,函数部分竟然没有参数和返回值,让我很 ...
- 【JVM学习笔记】类加载过程
在Java代码中,类型的加载.连接与初始化过程都是在程序运行期间完成的:提供了更大的灵活性,增加了更多的可能性 JVM启动过程包括:加载.连接.初始化 加载:就是将class文件加载到内存.详细的说是 ...
- pubwin2009 备份文件恢复
local_db.DBBak 恢复注意: 1.先安装好全新server -> 用SQLManager连接数据库 连接时右键编辑 SQLSERVER注册属性 默认sql连接 帐号netcafe ...