实体类:

UserInfo:

public partial class UserInfo
{
public UserInfo()
{
this.Persion = new HashSet<Persion>();
this.MyTYC = new HashSet<MyTYC>();
} public int id { get; set; }
public string name { get; set; }
public Nullable<System.DateTime> createTime { get; set; }
public Movies Movies { get; set; }
public virtual ICollection<MyTYC> MyTYC { get; set; }
}

Movies:(跨库表)

public class Movies
{
public int ID { get; set; }
public string Title { get; set; }
public string ReleaseDate { get; set; }
public string Genre { get; set; }
public string Price { get; set; }
public UserInfo UserInfo { get; set; } }

MyTYC

public partial class MyTYC
{
public int id { get; set; }
public string name { get; set; } }

代码:

string sql = @"select * from UserInfo u
inner join [Movies].dbo.Movies m on u.id=m.ID
inner join MyTYC t on u.id=t.id";
var data = conn.Query<UserInfo, Movies, MyTYC, UserInfo>(sql, (u, m, t) => { u.Movies = m; u.MyTYC.Add(t); return u; });

主要是  

u.Movies = m
u.MyTYC.Add(t)

一个是关联主键表(单个对象),一个是关联外键表(集合)。

Dapper 连表查询的更多相关文章

  1. Dapper多表查询时子表字段为空

    最近在学习使用Dapper时百度了一篇详细使用教程,在做到多表查询的时候,出现如下情况. 使用的SQL如下, SELECT * FROM [Student] AS A INNER JOIN [Juni ...

  2. Dapper多表查询(列名重复,类字段重复)映射方案

    1. 一个主名,一个别名,设计时候属性和字段命名不同. 这样主名和别名都可以用的,在主名与别人重复时候用别名(别名可以设计的明确一点长一点,比如类名和字段结合) 2. 或者找一个字段多的直接继承出一个 ...

  3. Dapper多表查询

    1对1 //文章 public class Post { public int ID { get; set; } public string Title { get; set; } public st ...

  4. 基于Dapper的开源Lambda扩展LnskyDB 2.0已支持多表查询

    LnskyDB LnskyDB是基于Dapper的Lambda扩展,支持按时间分库分表,也可以自定义分库分表方法.而且可以T4生成实体类免去手写实体类的烦恼. 文档地址: https://lining ...

  5. Dapper 多表(三表以上)查询小技巧

    在使用Dappr做查询的时候遇到多表查询,之前多是两张表,现在出现三张表或者更多.两表的时候使用splitOn进行分割,splitOn的默认值是Id.在我建库的时候,主键ID并不都是这个名字.当出现三 ...

  6. Dapper 链式查询 扩展

    Dapper 链式查询扩展 DapperSqlMaker   Github地址:https://github.com/mumumutou/DapperSqlMaker  欢迎大佬加入 Demo: 查询 ...

  7. sql的行转列(PIVOT)与列转行(UNPIVOT) webapi 跨域问题 Dapper 链式查询 扩展 T4 代码生成 Demo (抽奖程序)

    sql的行转列(PIVOT)与列转行(UNPIVOT)   在做数据统计的时候,行转列,列转行是经常碰到的问题.case when方式太麻烦了,而且可扩展性不强,可以使用 PIVOT,UNPIVOT比 ...

  8. 连表查询都用Left Join吧 以Windows服务方式运行.NET Core程序 HTTP和HTTPS的区别 ASP.NET SignalR介绍 asp.net—WebApi跨域 asp.net—自定义轻量级ORM C#之23中设计模式

    连表查询都用Left Join吧   最近看同事的代码,SQL连表查询的时候很多时候用的是Inner Join,而我觉得对我们的业务而言,99.9%都应该使用Left Join(还有0.1%我不知道在 ...

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

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

随机推荐

  1. mysqldump备份数据库

    1. 备份数据库-->sql文件 mysqldump -h192.168.1.100 -uuser -p123 --databases name > /tmp/databasedump.s ...

  2. linux编程头文件所在路径的问题

    一.问题引入 1.头文件与库 当我们在PC主机linux环境下(如ubuntu),编写linux应用程序,然后利用gcc来编译.在源代码的开始位置会写入头文件,那是因为我们使用了系统提供的库函数,例如 ...

  3. 阿里巴巴Java开发规约插件p3c详细教程及使用感受 - 转

    http://www.cnblogs.com/han-1034683568/p/7682594.html

  4. visual studio Web发布至 IIS WebDeploy出错(未能创建SSL/TLS安全通道)Could not create SSL/TLS secure channel

    问题发生的原因是VS 15.9尝试使用系统默认值进行TLS握手,但是要在VS内的某处设置为TLS1.2. 此问题的解决方法是在部署项目的IIS服务器上启用TLS 1.2.例如,请按照此文章中的说明操作

  5. 搭建SpringBoot+dubbo+zookeeper+maven框架(二)

    上一篇文章是关于搭建SpringBoot+dubbo+zookeeper+maven框架的,但是里面的功能还不够完善,今天就日志管理方面做一些改善. 下了demo的网友可能会发现项目在启动时会有警告: ...

  6. Python3.x:Selenium+PhantomJS爬取带Ajax、Js的网页及获取JS返回值

    前言 现在很多网站的都大量使用JavaScript,或者使用了Ajax技术.这样在网页加载完成后,url虽然不改变但是网页的DOM元素内容却可以动态的变化.如果处理这种网页是还用requests库或者 ...

  7. elaticsear no [query] registered for [filtered] 错误

    1.问题描述 执行语句: GET /megacorp/employee/_search { "query" : { "filtered" : { "f ...

  8. Quartz.Net分布式任务管理平台(续)

           感谢@Taking园友得建议,我这边确实多做了一步上传,导致后面还需处理同步上传到其他服务器来支持分布式得操作.所有才有了上篇文章得完善. 首先看一下新的项目结构图: 这个图和上篇文章中 ...

  9. SqlDataAdapter简单介绍 (转)

    From:  http://blog.sobnb.com/u/92/5532.html 一.特点介绍 1.表示用于填充 DataSet 和更新 SQL Server 数据库的一组数据命令和一个数据库连 ...

  10. Redis持久化的两种方式和区别

    该文转载自:http://www.cnblogs.com/swyi/p/6093763.html Redis持久化的两种方式和区别 Redis是一种高级key-value数据库.它跟memcached ...