一、有时我们需要将常用的功能添加到PetaPoco中的Database类中

实现方式有2种,以下以查询字段为例

1.通过扩展方式实现,此方式不改变被调用(Database)类名(只能增加方法)

public static class DatabaseExtension

{
  public static T SingleOrDefaultWithWhere<T>(this Database db, string name, object value)
  {
    string sql = "WHERE " + name + " = @0";
    return db.SingleOrDefault<T>(sql, value);
  }
}

2.通过继承Database类,以后所有调用都直接调用Db类(不但可以增加方法、还可以对虚方法进行重写[如执行的SQL语句日志等],推荐)

public partial class Db : Database

{
  public T SingleOrDefaultWithWhere<T>(this Database db, string name, object value)
  {
    string sql = "WHERE " + name + " = @0";
    return db.SingleOrDefault<T>(sql, value);
  }
}

二、有时我们不需要返回实体对象,需要返回一个DataTable格式的数据,这时就需要对Database进行扩展,

        以下是返回一个DataTable格式的数据:

public DataTable Table(string sql, params object[] args)
{
OpenSharedConnection();
try
{
using (var cmd = CreateCommand(Connection, sql, args))
{
using (DbDataAdapter dbDataAdapter = Provider.GetFactory().CreateDataAdapter())
{
DataTable dt = new DataTable();
dbDataAdapter.SelectCommand = (DbCommand)cmd;
dbDataAdapter.Fill(dt);
OnExecutedCommand(cmd);
return dt;
}
}
}
catch (Exception x)
{
if (OnException(x))
throw;
return null;
}
finally
{
CloseSharedConnection();
}
}

PetaPoco轻量级ORM框架 - 对Database类的进行扩展,可以返回Table格式数据的更多相关文章

  1. PetaPoco轻量级ORM框架 - 入门安装

    PetaPoco 是一个开源轻量级ORM,够小,够快,单文件 在GitHub上有很高的人气 1377星,几年来作者一直在更新 当前版本6.0.317 - Netstandard 2.0(同时支持.ne ...

  2. PetaPoco轻量级ORM框架 - Database API 手册

    PetaPoco Database API #region IDisposable public void Dispose() #endregion #region Constructors publ ...

  3. 轻量级ORM框架初探-Dapper与PetaPoco的基本使用

    一.EntityFramework EF是传统的ORM框架,也是一个比较重量级的ORM框架.这里仍然使用EF的原因在于为了突出轻量级ORM框架的性能,所谓有对比才有更优的选择. 1.1 准备一张数据库 ...

  4. C# 性能优化 之 秒表 Stopwatch。 Dapper一个和petapoco差不多的轻量级ORM框架

    Sweet小马 小马同学的编程日记. C# 性能优化 之 秒表 Stopwatch. 生词解释:Diagnostics[,daɪəg'nɑstɪks] n.诊断学 using System.Diagn ...

  5. ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库

    前段时间在园子里看到了小蝶惊鸿 发布的有关绿色版的Linux.NET——“Jws.Mono”.由于我对.Net程序跑在Linux上非常感兴趣,自己也看了一些有关mono的资料,但是一直没有时间抽出时间 ...

  6. 分享自己写的基于Dapper的轻量级ORM框架~

    1.说明 本项目是一个使用.NET Standard 2.0开发的,基于 Dapper 的轻量级 ORM 框架,包含基本的CRUD以及根据表达式进行一些操作的方法,目前只针对单表,不包含多表连接操作. ...

  7. c# 轻量级ORM框架 实现(一)

    发布一个自己写的一个轻量级ORM框架,本框架设计期初基于三层架构.所以从命名上来看,了解三层的朋友会很好理解. 设计该框架的目的:不想重复的写增删改查,把精力放到功能实现上. 发布改框架的原因:希望给 ...

  8. 轻量级ORM框架 QX_Frame.Bantina(一、框架简介)

    轻量级ORM框架QX_Frame.Bantina系列讲解(开源) 一.框架简介 http://www.cnblogs.com/qixiaoyizhan/p/7417467.html 二.框架使用方式介 ...

  9. 视频教程--ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库

    说好的给园子里的朋友们录制与<ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库> 这篇博客相对应的视频,由于一个月一来没有时 ...

随机推荐

  1. 再回首:object是什么

    前言 这里说得object是C#语言中的类型object,也是Framework中的System.Object(两者是一个意思).如其名“面向对象编程”对象就是Object.既然提到面向对象,自然就想 ...

  2. C C++ OC指针常量和常量指针区别

    看Effective Objective-C 2.0  编写高质量iOS与OS X代码的52个有效方法这本书的时候看到有一个说多用类型常量,少用#define预处理指令 ,在这里面有说到指针常量,之前 ...

  3. jquery中 dom对象与jQuery对象相互转换

    var jq = $(dom对象);//额 再补充点吧好记. $是jquery的别名.这一句等价于 var jq = jQuery(dom对象); 反之. dom对象 = jq[0]; //不写那么长 ...

  4. 使用SQL语句创建数据库1

    创建一个数据文件和一个日志文件的数据库 user master --只想当前使用的数据库 GO --批处理标志 create database BOOK --创建book数据库 on primary ...

  5. 给Solr配置中文分词器

    第一步下载分词器https://pan.baidu.com/s/1X8v65YZ4gIkNQXsXfSULBw 第二歩打开已经解压的ik分词器文件夹 将ik-analyzer-solr5-5.x.ja ...

  6. python Django 路由之正则表达式

    一.路由系统,URL 1. url(r'^index',views.index) #默认的                  url(r'^home',views.Home.as_view()) # ...

  7. 思维导图_Python_内置函数

  8. RegExp使用技巧

    正则表达式 //用法 1. /\d/g 2. new RegExp('/\d/','g') //修饰符 g,i,m //元字符 1.元字符是在正则表达式中有特殊含义的非字母字符 . * + ? $ ^ ...

  9. Github+hexo+next搭建教程

    今天参考的是大神的教程,学了一个新东西,但是可能由于原教程中运用的npm包与我当前使用的npm包版本不同的原因,有出过多处运行错误,但都在此教程中解决了; 总结了下命令: npm install he ...

  10. 第二天-while循环 格式化输出 运算符 编码

    一.while循环 while 条件: 语句块(循环体)     #判断条件是否成立,若成立执行循环体,然后再次判断条件...直到不满足跳出循环 else: 当条件不成立的时候执行这里,和break没 ...