• 原创的轻量级ORM,支持Lambda进行数据库操作


    这个orm已经用了好几个月了基本完善了,现在来分享下他的操作方式

    Db.Instance.Insert<Message>()
                  .Add(o 
    => o.Product, msg.Product)
                  .Add(o 
    => o.Email, msg.Email)
                  .Add(o 
    => o.Phone, msg.Phone)
                  .Add(o 
    => o.Address, add.Area+add.Detail)
                  .Add(o 
    => o.Content, msg.Content)
                  .Add(o 
    => o.IP, ip)
                  .Add(o 
    => o.CreateAt, DateTime.Now)
                  .Execute();
    Db.Instance.Update
    <Article>(o => o.ArticleId == articleId)
                  .Add(o 
    => o.ColumnId, columnId)
                  .Add(o 
    => o.Title, title)
                  .Add(o 
    => o.Content, content)
                  .Add(o 
    => o.CreateAt, DateTime.Now)
                  .Execute() 
    > 0;
    Db.Instance.Insert(o);
    Db.Instance.Update(o);
    Db.Instance.Delete
    <Message>(o => o.MessageId == messageId);
    Db.Instance.Query
    <Message>().OrderByDescending(o => o.CreateAt);
    Db.Instance.Query
    <Message>().Where(o => o.MessageId == id).ToList();
    var q 
    = Db.Instance.Query<Product>().Where(o => o.SerialNumber.Contains(k) || o.Name.Contains(k) || o.ZhName.Contains(k) || o.EnName.Contains(k)).OrderByDescending(o=>o.CreateAt);
    q.GetRange(pageIndex, pageSize).ToList();


    Db.Instance 是根据webconfig里的第一个connection得到的
    <add name="daogou" providerName="System.Data.SqlClient" connectionString="Data Source=xxx;User ID=xxx;Password=xxx;Initial Catalog=xxx;Pooling=true" />
    也可以用new Db(string providerName, string connectionString)来得到实例,理论上支持所有的数据库,目前经过测试的有sqlserver,oledb,sqlite

    本orm是基于表达式树开发的,经测试构造sql效率非常高,支持where,in,distinct,select field,top,order,max,count,contains(like),insert,delete,update,getrange等,就不一一示例。全部使用参数化查询
    不过只支持单表操作,因为我个人不喜欢把业务逻辑放在sql语句里,支持事务(q.Attach(DbTransaction tran))。

    最后感谢老赵在园子里写了那么多关于表达式树的文章!

  • 相关阅读:
    Entity Framework中的多个库操作批量提交、事务处理
    Entity Framework with NOLOCK
    在Entity Framework 中执行T-sql语句
    Entity Framework Extended Library (EF扩展类库,支持批量更新、删除、合并多个查询等)
    Visual Studio 2010 更新NuGet Package Manager出错解决办法
    html判断IE版本
    Java基础-学习笔记(七)——this关键字
    Java基础-学习笔记(六)——类的封装性
    Java基础-学习笔记(五)——面向过程和面向对象的区别
    Java基础-学习笔记(四)-流程控制
  • 原文地址:https://www.cnblogs.com/farmer/p/1658231.html
Copyright © 2020-2023  润新知