开发库主要实现功能多个数据库统一接口,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); } }
评论