高效易用数据访问框架功能预览(二)(求指教)


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

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

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

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

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

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

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

//功能代码预览

publicstaticvoidMain(string[]args)
{
//1单值查询-----------------------------------
DBTool db=newDBTool(Table.EventBaseSet);
db.Where=EventBaseSet.EventID_.Equals_(2);
varstr=db.GetOneField<string>(EventBaseSet.Domain_);
Console.WriteLine("单值查询:"+str);

//2单行查询---------------
db.Where=EventBaseSet.Creater_CreaterID_.Equals_(3);
varentitye=db.GetEntity<EventBaseSet>();

varrow=db.GetDestinationFields(EventBaseSet.Domain_,EventBaseSet.HeadBGColor_);
vardomain=row[0];

//3多行查询------------------------------
db.Where=EventBaseSet.Creater_CreaterID_.BiggerThan_(3);
varlist=db.GetEntitesList<EventBaseSet>();
vartable=db.GetDataTable();

//4复合查询--------------------
db.Where=EventBaseSet.EventName_.Contains_("er").
And_(EventBaseSet.Domain_.EqualsStr_("ertertert"));
vardomainName=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();
varid=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);
varlist=db.GetTopList<EventBaseSet>(4);
foreach(varelementinlist){
Console.WriteLine(element.EventName);
}
//9删除数据-------------------
db.Where=EventBaseSet.Creater_CreaterID_.Equals(3);
db.DeleteWhere(db.Where);
db.SaveChanges();

//纯sql支持
vardeleteSql="delete from EventBaseSet where EventID=2";
DBTool.Database.ExecuteOneSql(deleteSql);

//10 json支持
varjson="";
DBTool.UpdateDatabaseByJSON(json);
DBTool.InsertDatabaseByJSON(json);

//11纯ADO.NET查询支持(代码生成器),提供代码生成器

//12存储过程支持
SuperSqlParameter p=newSuperSqlParameter("@a",DbType.Int64,3);
SuperSqlParameter p2=newSuperSqlParameter("@b",DbType.DateTime,DateTime.Now);
varlist=newQueue<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)

优质内容筛选与推荐>>
1、分享一个收集系统出现错误时收集信息的类
2、 牛顿法
3、Ajax学习 网址备忘录[转载整理]
4、Chart-template
5、Linux进程状态


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号