zoukankan      html  css  js  c++  java
  • 高效易用数据访问框架功能预览(二)(求指教)

    1.高性能(该框架采用纯的ADO.NET进行框架,避免Linq以及反射带来的性能损失);

    2.易用性强(配置简单,智能感知,代码生成器的辅助,会sql就可(可以自我性能优化)) ;

    3.多数据库支持(整个框架采用工厂模式设计,目前支持oracle,mssql,mysql,sqlite,acess,如果需要可自我扩增)

    4.查询新功能(linq一样写代码)

    我们介绍一下简单的配置文件.

     
        <appSettings>
            
    <add key="web" value="No" /><!--是否是网站开发-->
            
    <add key="databaseName" value="MSSQL" /><!--数据库的类型 还可以写MYSQL,SQLITE,ACCESS等....-->
            
    <add key="linkString" value="Server=mainserver;database=HD01SystemDB;Uid=sa;Pwd=123" />
        
    </appSettings>

     我们再看看我们的代码生成器.

     

     //功能代码预览

        public static void Main(string[] args)
            {
                //1单值查询-----------------------------------
                DBTool db=new DBTool(Table.EventBaseSet);
                db.Where=EventBaseSet.EventID_.Equals_(2);
                var str=db.GetOneField<string>(EventBaseSet.Domain_);
                Console.WriteLine("单值查询:"+str);
                
                //2单行查询---------------
                db.Where=EventBaseSet.Creater_CreaterID_.Equals_(3);
                var entitye=db.GetEntity<EventBaseSet>();
                
                var row=db.GetDestinationFields(EventBaseSet.Domain_,EventBaseSet.HeadBGColor_);
                var domain=row[0];
                
                //3多行查询------------------------------
                db.Where=EventBaseSet.Creater_CreaterID_.BiggerThan_(3);
                var list=db.GetEntitesList<EventBaseSet>();
                var table=db.GetDataTable();
                
                 //4复合查询--------------------
                db.Where=EventBaseSet.EventName_.Contains_("er").
                    And_(EventBaseSet.Domain_.EqualsStr_("ertertert"));
                var domainName=db.GetOneField<string>(EventBaseSet.Domain_);
                Console.WriteLine("复合查询:"+domainName);
               
               //5多表查询--------------
                db.Where="交叉查询语句";
                db.GetEntitesList<自定义类型>();

                
                
                //6添加数据
                db.SetInsertField(EventBaseSet.Creater_CreaterID_,33);
                db.SetInsertField(EventBaseSet.EnabledBodyHtml_,true);
                db.SetInsertField(EventBaseSet.EventName_,"测试");
                db.SaveChanges();
                var id=db.NewID;
                
                //7更新数据------------------------
                db.Where=EventBaseSet.EventID_.Equals(3);
                db.SetUpdateField(EventBaseSet.EnabledBodyHtml_,false);
                db.SetUpdateField(EventBaseSet.Domain_,"www.badi.com");
                db.SaveChanges();
                
                //8前N行查询----------------
                Console.WriteLine("前N行查询:");
                db.Where=EventBaseSet.EventID_.BiggerThan_(0);
                var list=db.GetTopList<EventBaseSet>(4);
                foreach (var element in list) {
                    Console.WriteLine(element.EventName);
                }
                //9删除数据-------------------
                db.Where=EventBaseSet.Creater_CreaterID_.Equals(3);
                db.DeleteWhere(db.Where);
                db.SaveChanges();
                
                //纯sql支持
                var deleteSql="delete from EventBaseSet where EventID=2";
                DBTool.Database.ExecuteOneSql(deleteSql);
                
                //10 json支持
                var json="";
                DBTool.UpdateDatabaseByJSON(json);
                DBTool.InsertDatabaseByJSON(json);
                
                //11纯ADO.NET查询支持(代码生成器),提供代码生成器
                
                //12存储过程支持
                SuperSqlParameter p=new SuperSqlParameter("@a", DbType.Int64,3);
                SuperSqlParameter p2=new SuperSqlParameter("@b",DbType.DateTime,DateTime.Now);
                var list=new Queue<QinParameter>();
                list.Add(p);
                list.Add(p2);
                DBTool.Database.ExecuteProc("myproc",list);
                
                Console.WriteLine("Press any key to continue . . . ");
                Console.Read();
            }

    若大家感兴趣到时候我发布给大家免费使用.目前正用于我们公司的开发中(实体框架性能很低,不敢用了)

    先给大家提供库dll以及生成器 ,若有兴趣请关注(Files/humble/Debug.zip)




    少侠,我看你气度不凡天赋异禀,这么帅,来了就给推荐一把吧




    我的最近更新
    最新发布文章、框架、咨询等,来看看吧
  • 相关阅读:
    jQuery Ajax 方法调用 Asp.Net WebService 的详细例子(原创)
    jQuery 访问WebService 返回复合类型列表
    Vista Media Center 开发之深入浅出 (一) Vista Media Center开发环境的搭建
    安装一个媒体解码器让 Windows Media Player 支持更多媒体格式
    静静期待 Windows 7 的到来
    集成 RealTek 声卡 在 Windows 7 有杂音、爆音的解决方法
    使用jQuery for Asp.Net 我的开发环境配置
    Windows 7 VHD 启动
    建立一个 C#.Net Windows Service 程序
    Windows server 2008 r2 简体中文180天评估版微软官方下载地址
  • 原文地址:https://www.cnblogs.com/humble/p/2085223.html
Copyright © 2011-2022 走看看