Bouyei.DbFactory .net 多种数据库统一接口开源项目

我要开发同款
匿名用户2017年06月25日
63阅读
开发技术C#
所属分类常用工具包、程序开发
授权协议MIT

作品详情

开发库主要实现功能多个数据库统一接口,CRUD简化快速使用,类似mybatis框架,具体功能如下:

一、

1)、.net统一数据库接口库,支持SQLserver,DB2,Oracle,MySQL,Postgresql,access,sqlite等;

2)、支持.netCore2.0,.netframework,.netstandard2.0+

3)、sql脚本简单Linq条件表达式的CRUD操作

4)、实体映射赋值

5)、单表分页查询

 

二、例子sql脚本增删查改生成例子    //生成简单查询脚本

      ISqlProvidersqlProvider=SqlProvider.CreateProvider();

      //groupby       stringsqlgroupby=sqlProvider.Select<User>().Count().From<User>()        .Where(x=>x.uage==1).GroupBy<User>().SqlString;

      //function       stringsqlfun=sqlProvider.Select<User>(newMax("age")).From<User>().Where(x=>x.uage>20).SqlString;

      //orderby      varosql=sqlProvider.Select<User>().From<User>().OrderBy(SortType.Asc,"name").SqlString;

      vardic=newDictionary<string,object>();      dic.Add("name","hellow");      dic.Add("age",0);      dic.Add("score",1.0);

      //MappedName测试      varsqls=sqlProvider.Insert<UserDto>().Values(newUserDto[]{newUserDto(){         Pwd="ds",         UserName="d"      }}).SqlString;

      //查询      varsql=sqlProvider.Select<User>()         .From().Where(x=>x.id==1).Top(FactoryType.PostgreSQL,10).SqlString;

      //修改      sql=sqlProvider.Update<User>()        .Set(newUser(){uname="bouyei"})        .Where<User>(x=>x.id==1||(x.uname=="b"&&x.score==2)).SqlString;

      //删除      sql=sqlProvider.Delete()        .From<User>().Where(x=>x.uname=="bouyei").SqlString;

      //插入      sql=sqlProvider.Insert<User>()        .Values(newUser[]{        newUser(){uname="hello",uage=12}        ,newUser(){uname="bouyei",uage=23}}).SqlString;

2、增删查改操作例子

            IAdoProviderdbProvider=AdoProvider.CreateProvider(connectionString,FactoryType.PostgreSQL);      varext=dbProvider.Connect(connectionString);

          //原生脚本执行

      varadort=dbProvider.Query(newParameter()      {        CommandText="select*frompublic.db_user"      });       //查询      varrt=dbProvider.Query<User>(x=>x.uage>=20);

      //单表分页 查询语法      vartakert=dbProvider.PageQuery<User>(x=>x.uage==30,0,10);

      //更改      vardic=newDictionary<string,object>();      dic.Add("name","hellow");      dic.Add("age",0);      dic.Add("score",1.0);      dbProvider.Update<User>(dic,x=>x.id==1);

          //删除操作

      dbProvider.Delete<User>(x=>x.uname=="bouyei");

         //插入      varusers=newUser[]{      newUser(){uname="bouyei",score=100,uage=30},      newUser(){uname="八渡",score=10,uage=20}      };      dbProvider.Insert(users);

3、mapper实体,实体对象复制到新对象

             Useru=newUser(){          uname="b",           id=1        };

        Userb=newUser(){           uname="a",           id=2        };

              //u对象定义的变量复制给b对象,条件是只复制name等变量名        EntityMapper.MapTo(u,b,FilterType.Include,"name");

 

4、实体或服务继承实现基本的增删查改操作无需写sql脚本

 [MappedName("db_user")]  publicclassUserDto:BaseMapper<UserDto>  {    publicstringUserName{get;set;}

    [Ignore]    publicstringPwd{get;set;}

    

        publicvoidAddUser(UserDtouser)    {      base.Insert(user);    }

    publicvoidDeleteById(stringname)    {      base.Delete(x=>x.UserName==name);    }

    publicvoidUpdateUser(UserDtodto)    {      base.Update(dto,x=>x.UserName=="bouyei");    }

    publicList<UserDto>QueryUsers(intpage=0,intsize=10)    {      returnbase.Select(page,size,x=>true);    }

  }

  publicclassfc3d:BaseMapper<fc3d>  {    publicstringfname{get;set;}

    publiclongfcode{get;set;}  }

  publicclassBaseMapper<T>:TableMapper<T>whereT:class  {    publicBaseMapper()    {      stringconnstr="Host=127.0.0.1;Port=5432;Userid=postgres;Password=bouyei;Database=postgres;";      varprovider=AdoProvider.CreateProvider(connstr,FactoryType.PostgreSQL);      Initialized(provider);    }  }

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论