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

app浏览器源码大全网站微商营销

app浏览器源码大全网站,微商营销,公司网站改版方案盛世,设计理念怎么写模板现在成熟的ORM比比皆是,这里只介绍Dapper的使用(最起码我在使用它,已经运用到项目中,小伙伴们反馈还可以)。 优点: 1、开源、轻量、小巧、上手容易。 2、支持的数据库还蛮多的, Mysql,SqlLite,S…

现在成熟的ORM比比皆是,这里只介绍Dapper的使用(最起码我在使用它,已经运用到项目中,小伙伴们反馈还可以)。

优点:

1、开源、轻量、小巧、上手容易。

2、支持的数据库还蛮多的, Mysql,SqlLite,Sqlserver,Oracle等一系列的数据库。

3、Dapper原理通过Emit反射IDataReader的序列队列来快速的得到和产生对象。性能貌似很牛逼的样子

缺点:

作为一款ORM太过于轻量级了,根据对象自动生成sql的功能还是空白,需要自己来扩展,

当然这也是优点,  好声音的导师们经常说某人就是张白纸……  

因此针对Dapper已经有很多成熟的扩展项目了,Dapper.Rainbow、Dapper.Contrib,DapperExtensions。

我们这里介绍的是DapperExtensions

dapper-dot-net源码:https://github.com/StackExchange/dapper-dot-net   (更新频率快,项目包含了各种除了Dapper-Extensions的 扩展项目)

Dapper-Extensions 源码:https://github.com/tmsmith/Dapper-Extensions 

Dapper-Extensions的优点

1、开源

2、针对Dapper封装了常用的CRUD方法,有独立的查询语法。

3、需要映射的实体类本身0配置,无需加特性什么的。是通过独立的映射类来处理,可以设置类映射到DB的别名,字段的别名等等。

Dapper-Extensions的缺点:

1、好几年没更新了

2、不支持oracle(木有oracle的方言,已经搞定)  

3、不能同时支持多种数据库(已经搞定)

4、部分代码有些bug(发现的都搞定了)

下面先简单介绍一下Dapper的基本语法。

Dapper就一个.cs文件,可以放到项目代码中直接编译,也可以直接引用DLL文件。

Dapper对DB的操作依赖于Connection,为了支持多库,咱们用 IDbConnection conn

using (IDbConnection conn = GetConnection()){const string query = "select * from XO order by id desc";return conn.Query<XOEntity>(query,null);}

下面是带参数的语法

int xoID=666; //变量主键
using (IDbConnection conn = GetConnection()){const string query = "select * from XO where Id=@MyID";return conn.Query<XOEntity>(query, new { MyID = xoID});}

各种方法都重载了事务的操作,一般的数据库操作都支持。但是每次执行都需要传递sql,而且每次都要使用Using,看着不爽啊, 这…… 

好吧下面简单介绍下使用Dapper-Extensions的基本语法(在Dapper-Extensions  的基础上用了Repository模式,代码效果如下)。

            //实体类DemoEntity entity = new DemoEntity();//根据实体主键删除this.Delete<DemoEntity>(entity);//根据主键ID删除this.Delete<DemoEntity>(1);//增加this.Insert<DemoEntity>(entity);//更新bool result = this.Update<DemoEntity>(entity);//根据主键返回实体entity = this.GetById<DemoEntity>(1);//返回 行数this.Count<DemoEntity>(new { ID = 1 });//查询所有IEnumerable<DemoEntity> list = this.GetAll<DemoEntity>();IList<ISort> sort = new List<ISort>();sort.Add(new Sort { PropertyName = "ID", Ascending = false });//条件查询list = this.GetList<DemoEntity>(new { ID = 1, Name = "123" }, sort);//orm 拼接条件 查询IList<IPredicate> predList = new List<IPredicate>();predList.Add(Predicates.Field<DemoEntity>(p => p.Name, Operator.Like, "不知道%"));predList.Add(Predicates.Field<DemoEntity>(p => p.ID, Operator.Eq, 1));IPredicateGroup predGroup = Predicates.Group(GroupOperator.And, predList.ToArray());list = this.GetList<DemoEntity>(predGroup);//分页查询long allRowsCount = 0;this.GetPageList<DemoEntity>(1, 10, out allRowsCount, new { ID = 1 }, sort);

在说ORM之前,还是要说一下HY.DataAccess这个模块

 

这个模块是对数据访问提供的一个Helper的功能,里面包含了 各种DB的SqlHelper,分页。

DBHelper 都继承自IDBHelper.cs

using System.Data.Common;
using System.Data;namespace HY.DataAccess
{/// <summary>/// 提供对数据库的基本操作,连接字符串需要在数据库配置。/// </summary>public interface IDBHelper{/// <summary>/// 生成分页SQL语句/// </summary>/// <param name="pageIndex"></param>/// <param name="pageSize"></param>/// <param name="selectSql"></param>/// <param name="sqlCount"></param>/// <param name="orderBy"></param>/// <returns></returns>string GetPagingSql(int pageIndex, int pageSize, string selectSql, string sqlCount, string orderBy);/// <summary>/// 开始一个事务/// </summary>/// <returns></returns>
        DbTransaction BeginTractionand();/// <summary>/// 开始一个事务/// </summary>/// <param name="connKey">数据库连接字符key</param>DbTransaction BeginTractionand(string connKey);/// <summary>/// 回滚事务/// </summary>/// <param name="dbTransaction">要回滚的事务</param>void RollbackTractionand(DbTransaction dbTransaction);/// <summary>/// 结束并确认事务/// </summary>/// <param name="dbTransaction">要结束的事务</param>void CommitTractionand(DbTransaction dbTransaction);#region DataSet/// <summary>/// 执行sql语句,ExecuteDataSet 返回DataSet/// </summary>/// <param name="commandText">sql语句</param>/// <param name="commandType"></param>DataSet ExecuteDataSet(string commandText, CommandType commandType);/// <summary>/// 执行sql语句,ExecuteDataSet 返回DataSet/// </summary>/// <param name="connKey">数据库连接字符key</param>/// <param name="commandText">sql语句</param>/// <param name="commandType"></param>DataSet ExecuteDataSet(string connKey, string commandText, CommandType commandType);/// <summary>/// 执行sql语句,ExecuteDataSet 返回DataSet/// </summary>/// <param name="commandText">sql语句</param>/// <param name="commandType"></param>/// <param name="parameterValues">参数</param>DataSet ExecuteDataSet(string commandText, CommandType commandType, params DbParameter[] parameterValues);/// <summary>/// 执行sql语句,ExecuteDataSet 返回DataSet/// </summary>/// <param name="connKey">数据库连接字符key</param>/// <param name="commandText">sql语句</param>/// <param name="commandType"></param>/// <param name="parameterValues">参数</param>DataSet ExecuteDataSet(string connKey, string commandText, CommandType commandType, params DbParameter[] parameterValues);
http://www.lbrq.cn/news/2501929.html

相关文章:

  • win2003 wordpress景德镇seo
  • 网站建设公司与维护什么是软文营销
  • 寻找移动网站建设百度搜索引擎使用技巧
  • 深圳网站建设哪个公司号发帖推广哪个平台好
  • 会计是做什么的新手seo入门教程
  • 什么网站可以做会计题目广州seo网站推广平台
  • 盐城市建设局网站打不开网络营销以什么为中心
  • 高佣联盟做成网站怎么做百度信息流推广技巧
  • 巩义做网站xd seo搜索引擎优化的五个方面
  • 北京做网站建设的公司有哪些百度直播推广
  • wordpress站点切换为中文百度seo优化策略
  • 大淘客联盟做网站设计网站logo
  • 成都专业网站排名推广看片应该搜什么关键词哪些词
  • 浪琴手表网站建设图百度pc端入口
  • 怎么把网站做的更好淘宝直通车推广怎么做
  • 网站建设阿里云关键词优化公司费用多少
  • 新闻网站怎么备案百度推广的费用
  • 做网站需不需要营业执照恢复2345网址导航
  • 建设部电教中心网站赣州seo优化
  • 寻找武汉手机网站建设百度指数分析案例
  • 网站设计开发网站google seo实战教程
  • 有什么牌子网站是响应式线上推广软件
  • 建站网站排行榜百度推广登录地址
  • 做网站业务的怎么寻找客户国外免费舆情网站有哪些软件
  • 专门做网站搜索优化的公司百度建站
  • 网站举报在哪举报石家庄seo扣费
  • 如何攻击网站深圳网络推广专员
  • 网站通内容管理系统指定关键词seo报价
  • 网站建设学生兼职刷赞抖音推广网站
  • 环保公司网站建设宣传图片网站查询器
  • 结合项目阐述 设计模式:单例、工厂、观察者、代理
  • SpringBoot数学实例:高等数学实战
  • MySQL5.7主从延迟高排查优化思路
  • mac电脑安装docker图文教程
  • VMware Workstation17下安装Ubuntu20.04
  • 摘录-打造第二大脑