Dapper

Dapper是一款轻量级ORM工具(Github)。如果你在小的项目中,使用Entity Framework、NHibernate 来处理大数据访问及关系映射,未免有点杀鸡用牛刀。你又觉得ORM省时省力,这时Dapper 将是你不二的选择。

Dapper是.NET下一个micro的ORM,它和Entity Framework或Nhibnate不同,属于轻量级的,并且是半自动的。Dapper只有一个代码文件,完全开源,你可以放在项目里的任何位置,来实现数据到对象的ORM操作,体积小速度快。 使用ORM的好处是增、删、改很快,不用自己写sql,因为这都是重复技术含量低的工作,还有就是程序中大量的从数据库中读数据然后创建model,并为model字段赋值。这些ORM都可以轻松给你搞定。ORM给我们开发带来便利时,性能也是一个让我们不得不考虑的问题。一般的ORM性能和直接写原生的sql比都差不少,但是Dapper性能还很错,甚至和DbHelperSQL方式性能高出很多。

为什么选择Dapper

  1. 轻量。只有一个文件(SqlMapper.cs
  2. 速度快。Dapper的速度接近与IDataReader,取列表的数据超过了DataTable。
  3. 支持多种数据库。Dapper可以在所有Ado.net Providers下工作,包括sqlite, sqlce, firebird, oracle, MySQL, PostgreSQL and SQL Server
  4. 可以映射一对一,一对多,多对多等多种关系。
  5. 性能高。通过Emit反射IDataReader的序列队列,来快速的得到和产生对象,性能不错。
  6. 支持FrameWork2.0,3.0,3.5,4.0,4.5

先简单的了解一下Dapper的用法入门

Dapper的单条添加

public ActionResult SaveAdd(string name)
        {
            try
            {
                using (IDbConnection conn = new SqlConnection(ConnString))
                {
                    var a = conn.Execute($"insert into pm values('{name}')");
                    if (a > 0)
                    {
                        return Content("<script>alert('成功')</script>");
                    }
                    else
                    {
                        return Content("<script>alert('失败')</script>");
                    }
                }
            }
            catch (Exception e)
            {

                throw e;
            }
        }
View Code

Dapper的普通显示

public ActionResult Show()
        {
            try
            {
                using (IDbConnection conn = new SqlConnection(ConnString))
                {
                    var list = conn.Query<Models.PM>("select * from pm").ToList();
                    return View(list);
                }
            }
            catch (Exception e)
            {

                throw e;
            }

        }
View Code

下一章讲Dapper的一些复杂操作

原文地址:https://www.cnblogs.com/qiao298/p/11798467.html