当前位置: 首页 > news >正文

做智能网站系统网站域名注册网站

做智能网站系统,网站域名注册网站,有名的互联网公司,百度seo排名优化上一篇博文中我们快速的介绍了dapper的一些基本CURD操作#xff0c;也是我们manipulate db不可或缺的最小单元#xff0c;这一篇我们介绍下相对复杂 一点的操作#xff0c;源码分析暂时就不在这里介绍了。 一#xff1a;table sql 为了方便#xff0c;这里我们生成两个表… 上一篇博文中我们快速的介绍了dapper的一些基本CURD操作也是我们manipulate db不可或缺的最小单元这一篇我们介绍下相对复杂 一点的操作源码分析暂时就不在这里介绍了。  一table sql     为了方便这里我们生成两个表一个Users一个Productsql如下 1 Users table CREATE TABLE [dbo].[Users](     [UserID] [int] IDENTITY(1,1) NOT NULL,     [UserName] [varchar](50) NULL,     [Email] [varchar](100) NULL,     [Address] [varchar](100) NULL,  CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED  (     [UserID] ASC )WITH (PAD_INDEX   OFF, STATISTICS_NORECOMPUTE   OFF, IGNORE_DUP_KEY OFF, ALLOW_ROW_LOCKS   ON, ALLOW_PAGE_LOCKS   ON) ON [PRIMARY] ) ON [PRIMARY] 2 Product table CREATE TABLE [dbo].[Product](     [ProductID] [int] IDENTITY(1,1) NOT NULL,     [ProductName] [varchar](220) NULL,     [ProductDesc] [varchar](220) NULL,     [UserID] [int] NULL,     [CreateTime] [datetime] NULL,  CONSTRAINT [PK_Product] PRIMARY KEY CLUSTERED  (     [ProductID] ASC )WITH (PAD_INDEX   OFF, STATISTICS_NORECOMPUTE   OFF, IGNORE_DUP_KEY OFF, ALLOW_ROW_LOCKS   ON, ALLOW_PAGE_LOCKS   ON) ON [PRIMARY] ) ON [PRIMARY] 二in操作       很多时候我们在manipulate table的时候或多或少的都会用到 ”in关键字”比如:我要找到User表中Email in (5qq.com,8qq.com)的 Users record。。。 static void Main(string[] args)         {             var connection new SqlConnection(Data Source.;Initial CatalogDatamip;Integrated SecurityTrue;MultipleActiveResultSetsTrue);             var sql select * from Users where Email in emails;             var info connection.QueryUsers(sql, new { emails new string[2] { 5qq.com, 7qq.com } });         } 看了上面的操作是不是很简单只要我们的参数类型是Array的时候dappper会自动将其转化。。。   三多条sql一起执行      有时候我们会想在一条sql中灌入很多的snippet sql然后让其一起执行此时让我想起了一个操作我会在db中load data的时候会写到 select ... from marketing where  id in (....); select .... from eventmarketing where in (...)类似这样的语句然后进行结果合并这篇 为了方便演示在User上做一个*操作在Product上做一个* 操作比如下面这样 static void Main(string[] args)         {             var connection new SqlConnection(Data Source.;Initial CatalogDatamip;Integrated SecurityTrue;MultipleActiveResultSetsTrue);             var sql select * from Product; select * from Users;             var multiReader connection.QueryMultiple(sql);             var productList multiReader.ReadProduct();             var userList multiReader.ReadUsers();             multiReader.Dispose();         }   四多表join操作      不管sql写的多么好或者多么烂接触一个月还是接触到十年都必然跑不了多表查询那么在多表查询上dapper该如何使用呢比如 说我要找到2015-12-12之后的商品信息和个人信息很显然这是一个多表查询可以先来看一下users和product的关系。 可以发现其实他们有一个外键关系然后我们在Product Entity上做一下小修改将Users作为Product的一个entity property。。。 public class Product     {         public int ProductID { get; set; }         public string ProductName { get; set; }         public string ProductDesc { get; set; }         public Users UserOwner { get; set; }         public string CreateTime { get; set; }     } 有了这些储备我们大概就可以写出如下的sql。 static void Main(string[] args)         {             var connection new SqlConnection(Data Source.;Initial CatalogDatamip;Integrated SecurityTrue;MultipleActiveResultSetsTrue);             var sql select  p.ProductName,p.CreateTime,u.UserName                         from Product as p                         join Users as u                         on p.UserID u.UserID                         where p.CreateTime 2015-12-12; ;             var result connection.QueryProduct, Users, Product(sql,                                     (product, users)                                     {                                         product.UserOwner users; return product;                                     });         }   从错误信息中可以看到当你使用multi-mapping的时候要确保设置了splitOn参数除了Id。。。从这句话中好像也看不出什么名堂也就是说 除了Id你都需要设置SplitOn参数好吧这是逼着哥哥看源代码。。。。看看SplitOn到底是个什么样的鸟玩法。。。然后我从Call Stack往上 面找发现了非常”至关重要“的一段话。       然来splitOn就是Dapper对DataReader进行”从右到左“的扫描这样就可以从sequent中获取到一个subsequent然后遇到设置的splitOn 就停止。。。然来是这样哈哈。。。这回我就知道了将splitOn设置为”userName“就好了。。。比如 static void Main(string[] args)         {             var connection new SqlConnection(Data Source.;Initial CatalogDatamip;Integrated SecurityTrue;MultipleActiveResultSetsTrue);             var sql select  p.ProductName,p.CreateTime,u.UserName                         from Product as p                         join Users as u                         on p.UserID u.UserID                         where p.CreateTime 2015-12-12; ;             var result connection.QueryProduct, Users, Product(sql,                                     (product, users)                                     {                                         product.UserOwner users; return product;                                     },splitOn: UserName);         }   当然如果你觉得我上面说的太啰嗦了注意事项还tmd的多又是泛型又是Lambda的。。。你也可以不指定这些具体Type而默认使用 dynamic也是可以的比如下面这样   五支持存储过程    对于存储过程也是一个不得不说的话题我们的dapper同样也是可以执行的只需要在Query中的CommandType中标记一下当前就是一个 StoredProcedure就八九不离十了比如现在在Users表上创建一个简单的StoredProcedure。 USE [Datamip] GO /****** Object:  StoredProcedure [dbo].[sp_GetUsers]    Script Date: 09/02/2016 09:14:04 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO Create proc [dbo].[sp_GetUsers]    id int    as   begin    select * from Users where UserID id ;    end 在这里我们需要向存储过程塞入一个id参数返回具体的Users EntityList好了下面再看一下Query如何构造。 static void Main(string[] args)         {             var connection new SqlConnection(Data Source.;Initial CatalogDatamip;Integrated SecurityTrue;MultipleActiveResultSetsTrue);             var info connection.QueryUsers(sp_GetUsers, new { id 5 },                                    commandType: CommandType.StoredProcedure);         }   搞定感觉用Dapper是不是就这么简单先就说到这里希望对大家有帮助。 相关文章 Net下无敌的Micro ORM — Dapper.NET Core 使用Dapper 操作MySQLDapper、Entity Framework 和混合应用第一篇Dapper快速学习 原文地址http://www.cnblogs.com/huangxincheng/p/5832281.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注
http://www.pierceye.com/news/261188/

相关文章:

  • 上传到服务器的网站打开是空白网站报备流程
  • 如何用ps做网站标识一个叫mit做app的网站
  • 网站免费网站免费主流网站模板
  • 湖州市交通建设管理局网站牌具做网站可以吗
  • 湖南鸿泰电力建设有限公司网站西安做小程序的公司
  • 学校资源网站建设方案聊城网站建设
  • windows 做网站服务器python做的网站漏洞
  • 培训网站推荐网站内容该怎么做
  • 精通网站建设电子档朵朵软件网站建设
  • 铜山区规划建设局网站网站开发的甘特图
  • 访问网站速度慢中国最新军事新闻直播
  • 商城网站的psd模板免费下载哪里可以上传自己的php网站
  • 珠宝网站策划书网页设计的毕业设计
  • 最经典最常用的网站推广方式什么做网站赚钱
  • 广州哪家做网站化妆品网站方案
  • cms开源网站管理系统北京网站建设策划解决方案
  • 洛阳做多屏合一网站最新款淘宝客源码整网站程序模板+后台带自动采集商品功能带文章
  • 宁国新站seo中国建筑网官网监理工程师网站
  • 自己建网站多少钱福州建设企业网站
  • 容桂佛山做app网站wordpress 搜索 任意
  • dw做单页网站教程盐城网站建设价位
  • 赤峰建设业协会的官方网站wordpress博客伪静态
  • 2016个人做淘宝客网站网站备案备注信息
  • 加盟招商推广网站怎么做网站的防盗链
  • 南阳网站关键词ppt在线浏览网站源码
  • 用vs2012做网站首页涉密网络建设
  • 个人主题网站设计seo技术论坛
  • 做venn图的网站网页设计期末考试作品
  • 中英文网站怎么做外贸SOHO建公司网站
  • 展馆门户网站建设广告片制作公司