我有这样一个一对一关系的表结构:User->UserInfo

User:

 /// <summary>
/// 用户
/// </summary>
[Serializable]
public partial class SysUser
{
public SysUser()
{}
#region Model
/// <summary>
/// 用户编号
/// </summary>
public string SysId { get; set; } /// <summary>
/// 用户名
/// </summary>
public string UserName { get; set; } /// <summary>
/// 密码
/// </summary>
public string UserPwd { get; set; } /// <summary>
/// 创建时间
/// </summary>
public DateTime? CreateTime { get; set; } /// <summary>
/// 最后一次登录时间
/// </summary>
public DateTime? LastLogin { get; set; } /// <summary>
/// 该条记录的操作情况,用于记录最后一次谁在什么时候创建、修改了该记录
/// </summary>
public string RecordStatus { get; set; } /// <summary>
/// 用户的详细信息
/// </summary>
public SysUserInfo UserInfo { get; set; } #endregion Model public IEnumerable<SysRole> Roles { get; set; }
}

 

UserInfo:

/// <summary>
/// 用户信息
/// </summary>
[Serializable]
public partial class SysUserInfo
{
public SysUserInfo()
{}
#region Model
/// <summary>
/// 用户编号
/// </summary>
public string SysId { get; set; } /// <summary>
/// 真实名字
/// </summary>
public string RealName { get; set; } /// <summary>
/// 职位
/// </summary>
public string Title { get; set; } /// <summary>
/// 性别
/// </summary>
public bool Sex { get; set; } /// <summary>
/// 手机
/// </summary>
public string Phone { get; set; } /// <summary>
/// 传真
/// </summary>
public string Fax { get; set; } /// <summary>
/// 邮箱
/// </summary>
public string Email { get; set; } /// <summary>
/// qq
/// </summary>
public string QQ { get; set; } /// <summary>
/// 地址
/// </summary>
public string Address { get; set; } #endregion Model }

 

 

查询的具体Sql:

select u.CreateTime,u.LastLogin,u.RecordStatus,u.SysId,u.UserName,u.UserPwd,ui.SysId,
ui.Address,ui.Email,ui.Fax,ui.Phone,ui.QQ,ui.RealName,ui.Sex,ui.Title
from Sys_User u inner join Sys_UserInfo ui on u.SysId=ui.SysId inner join Sys_UserRole ur on
u.SysId=ur.UserId inner join Sys_Role r on ur.RoleId = r.SysId

 

要想把UserInfo的数据填充到User中,需要用下面的方式实现:

connection.Query<SysUser, SysUserInfo, SysUser>(

                    Constant.ProcGetList,

                    (u, ui) =>

                        {

                            u.UserInfo = ui;

                            return u;

                        },

                        p,splitOn:"SysId",

                    commandType: CommandType.StoredProcedure);

 

 

此处要注意的就是splitOn,他其它是分割子对象的属性。

Dapper 嵌套对象查询的更多相关文章

  1. elasticsearch 嵌套对象之嵌套类型

    nested类型是一种特殊的对象object数据类型(specialised version of the object datatype ),允许对象数组彼此独立地进行索引和查询. 1. 对象数组如 ...

  2. Yii2.0ActiveRecord嵌套子查询(AR子查询)

    yii2.0的ActiveRecord是可以嵌套子查询的. 比如从一个子查询里面筛选数据. 首先实例化出来一个Query对象,代表子查询. $subQuery = new \yii\db\Query( ...

  3. mybatis的嵌套查询与嵌套结果查询的不同

    原文:https://blog.csdn.net/qq_39706071/article/details/85156840 实体类: 嵌套查询mapper方法:嵌套查询的弊端:即嵌套查询的N+1问题尽 ...

  4. 三层架构的一点理解以及Dapper一对多查询

    1.首先说一下自己对三层架构的一点理解 论坛里经常说会出现喜欢面相对象的写法,所以使用EF的,我个人觉得他俩没啥关系,先别反对,先听听我怎么说吧. 三层架构,基本都快说烂了,但今天还是说三层架构:UI ...

  5. elasticsearch嵌套对象的映射

    在es中,我们有时候可能需要映射,{ "field" : "xx" , "field01" : [] }这样格式的嵌套对象,默认情况下es会 ...

  6. js嵌套对象相等比较的一种方法 (原创)

    做前端开发经常会遇到比较js对象是否相等的情况, 或者说其它问题往往会归结到这个问题上来:比如对象数组的去重复. 网上看到过很多例子, 但是基本上都是那种比较简单的对象结构, 而复杂的对象结构,比如对 ...

  7. ylb:子查询(嵌套子查询)和子查询(相关子查询)

    ylbtech-SQL Server:SQL Server-子查询(嵌套子查询)和子查询(相关子查询) SQL Server 子查询(嵌套子查询)和子查询(相关子查询). 1,ylb:1,子查询(嵌套 ...

  8. [SQL SERVER系列]之嵌套子查询和相关子查询

    子查询有两种类型,一种是只返回一个单值的子查询,这时它可以用在一个单值可以使用的地方,这时子查询可以看作是一个拥有返回值的函数:另外一种是返回一列值的子查询,这时子查询可以看作是一个在内存中临时存在的 ...

  9. 让jquery easyui datagrid列支持绑定嵌套对象

    嵌套对象是指返回的json数据,是对象的某个属性自带有属性.而我们恰恰又需要这个属性,默认情况下easyui的datagrid是不支持绑定嵌套对象的.比如:datagrid的field属性只能为fie ...

随机推荐

  1. TOMCAT Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.

    十二月 31, 2014 2:32:45 下午 org.apache.coyote.http11.AbstractHttp11Processor process信息: Error parsing HT ...

  2. hibernate经常报的几个不起眼的错误, 都是因为不细心或者手滑了输入有误造成了

    最近会经常用到hibernate了, 也经常报错, 看着屏幕上一根大红条是非常不爽的, 这几天集合了一下经常报的错误, 整合一下放到这里, 以后再出现这个错误直接去解决就好了 1, org.hiber ...

  3. TZOJ 1545 Hurdles of 110m(01背包dp)

    描述 In the year 2008, the 29th Olympic Games will be held in Beijing. This will signify the prosperit ...

  4. 平衡二叉树Balanced Binary Tree

    [抄题]: Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced b ...

  5. iis 应用程序连接池 在计算机“.”上没有找到WAS服务

    重新打开控制面板----打开或关闭windows功能,全部勾选internet information services 可承载的web核心. internet信息服务.microsoft.net f ...

  6. Java中的NIO及IO

    1.概述 Java NIO(New IO) 是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API.NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同, ...

  7. php Pthread 多线程 (二) Worker和Threaded

    <?php //Worker是具有持久化上下文(执行环境)的线程对象 //Worker对象start()后,会执行run()方法,run()方法执行完毕,线程也不会消亡 class MySqlW ...

  8. 【原创】Silverlight之TextBox的LostFocus、GotFocus事件

    <TextBox x:Name="txtCount" Width="200" Height="35" GotFocus="t ...

  9. mysql自定义函数收集

    代码: 查找字符串 in_string 中,存在多少个字符串 in_find_str delimiter $$ DROP FUNCTION IF EXISTS `fn_findCharCount` $ ...

  10. 使用jsonp跨域发送请求

    如果获取的数据文件存放在远程服务器上(域名不同,也就是跨域获取数据),则需要使用jsonp类型. 使用这种类型的话,会创建一个查询字符串参数 callback=? ,这个参数会加在请求的URL后面. ...