• 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的一些复杂操作

  • 相关阅读:
    项目常用组建摘记
    How do I resolve the CodeSign error: CSSMERR_TP_NOT_TRUSTED?
    使用wkwebview后,页面返回不刷新的问题
    前端性能监控方案window.performance 调研(转)
    UC浏览器中,设置了position: fixed 的元素会遮挡z-index值更高的同辈元素
    zepto中给不存在的元素设置样式并绑定事件的坑
    js中的路由匹配
    input光标高度问题
    javascript创建css、js,onload触发callback兼容主流浏览器的实现
    js input输入事件兼容性问题
  • 原文地址:https://www.cnblogs.com/qiao298/p/11798467.html
Copyright © 2020-2023  润新知