<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Bouyei.DbFactory.net 多種數(shù)據(jù)庫(kù)統(tǒng)一接口

          聯(lián)合創(chuàng)作 · 2023-09-28 12:09

          開發(fā)庫(kù)主要實(shí)現(xiàn)功能多個(gè)數(shù)據(jù)庫(kù)統(tǒng)一接口,CRUD簡(jiǎn)化快速使用,類似mybatis框架,具體功能如下:

          一、

          1)、.net 統(tǒng)一數(shù)據(jù)庫(kù)接口庫(kù),支持 SQL server,DB2,Oracle,MySQL,Postgresql,access,sqlite 等;

          2)、支持.net Core 2.0,.net framework,.net standard 2.0+

          3)、sql腳本簡(jiǎn)單Linq條件表達(dá)式的CRUD操作

          4)、實(shí)體映射賦值

          5)、單表分頁(yè)查詢

           

          二、例子
          1. sql 腳本增刪查改生成例子

                  //生成簡(jiǎn)單查詢腳本

                      ISqlProvider sqlProvider = SqlProvider.CreateProvider();

                      //group by 
                      string sqlgroupby = sqlProvider.Select<User>().Count().From<User>()
                          .Where(x => x.uage == 1).GroupBy<User>().SqlString;

                      //function 
                      string sqlfun = sqlProvider.Select<User>(new Max("age")).From<User>().Where(x=>x.uage>20).SqlString;

                      //order by
                      var osql = sqlProvider.Select<User>().From<User>().OrderBy(SortType.Asc, "name").SqlString;

                      var dic = new Dictionary<string, object>();
                      dic.Add("name", "hellow");
                      dic.Add("age", 0);
                      dic.Add("score", 1.0);

                      //MappedName 測(cè)試
                      var sqls = sqlProvider.Insert<UserDto>().Values(new UserDto[] { new UserDto() {
                           Pwd="ds",
                            UserName="d"
                      } }).SqlString;

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

                      //修改
                      sql = sqlProvider.Update<User>()
                          .Set(new User() { 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(new User[] {
                          new User() { uname ="hello", uage=12 }
                          ,new User() { uname="bouyei",uage=23} }).SqlString;

          2、增刪查改操作例子

                      IAdoProvider dbProvider = AdoProvider.CreateProvider(connectionString, FactoryType.PostgreSQL);
                      var ext = dbProvider.Connect(connectionString);

                      //原生腳本執(zhí)行

                      var adort = dbProvider.Query(new Parameter()
                      {
                          CommandText = "select * from public.db_user"
                      });
           
                      //查詢
                      var rt= dbProvider.Query<User>(x => x.uage >= 20);

                      //單表分頁(yè) 查詢語(yǔ)法
                      var takert = dbProvider.PageQuery<User>(x => x.uage == 30,0, 10);

                      //更改
                      var dic = new Dictionary<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");

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

          3、mapper實(shí)體,實(shí)體對(duì)象復(fù)制到新對(duì)象

                       User u = new User() {
                              uname="b",
                                id=1
                          };

                          User b = new User() {
                               uname="a",
                                id=2
                          };

                          //u對(duì)象定義的變量復(fù)制給b對(duì)象,條件是只復(fù)制name等變量名
                          EntityMapper.MapTo(u, b, FilterType.Include, "name");

           

          4、實(shí)體或服務(wù)繼承實(shí)現(xiàn)基本的增刪查改操作無(wú)需寫sql腳本

            [MappedName("db_user")]
              public class UserDto : BaseMapper<UserDto>
              {
                  public string UserName { get; set; }

                  [Ignore]
                  public string Pwd { get; set; }

              

                  public void AddUser(UserDto user)
                  {
                      base.Insert(user);
                  }

                  public void DeleteById(string name)
                  {
                      base.Delete(x => x.UserName == name);
                  }

                  public void UpdateUser(UserDto dto)
                  {
                      base.Update(dto, x => x.UserName == "bouyei");
                  }

                  public List<UserDto> QueryUsers(int page=0,int size=10)
                  {
                     return base.Select(page, size, x => true);
                  }

              }

              public class fc3d:BaseMapper<fc3d>
              {
                  public string fname { get; set; }

                  public long fcode { get; set; }
              }

              public class BaseMapper<T> : TableMapper<T> where T : class
              {
                  public BaseMapper()
                  {
                      string connstr = "Host=127.0.0.1;Port=5432;User id=postgres;Password=bouyei;Database=postgres;";
                      var provider = AdoProvider.CreateProvider(connstr, FactoryType.PostgreSQL);
                      Initialized(provider);
                  }
              }

          瀏覽 23
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  玖玖在线免费观看视频 | 成年人精品视频 | 苍井空在厨房被C的A片 | 国产免费无码一区二区 | 中文字幕丰满乱孑伦无码专区 |