高效易用数据访问框架功能预览(二)(求指教)
2011-06-20 14:38
423 查看
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)
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)
相关文章推荐
- 原创:MVC 5 实例教程(MvcMovieStore 新概念版:mvc5.0,EF6.01) - 2、数据框架 和 功能预览
- FoxOne---一个快速高效的BS框架--数据访问(Dao)
- 使用实体框架6.1的通用数据访问助手(代码优先)
- SQL Server 2005 Mobile Edition 3.0 中的复制和远程数据访问功能的技术对比
- DataRabbit 轻量的数据访问框架(19)-- 读写分离与隔离级别
- hibernate4框架的增删查改(包含hql)数据等功能方法
- DataRabbit 轻量的数据访问框架(03) -- IOrmAccesser(续)
- DataRabbit 轻量的数据访问框架(05) -- ITableAccesser
- 扩展Spring系列(2) ---Spring对各种数据访问框架的集成机制
- DataRabbit 轻量的数据访问框架(15)-- IOrmAccesser的BatchInsert批量插入!
- 使用Okhttp框架访问接口数据,通过RecyclerView进行数据展示
- SQL Server05 M 3.0 中复制和远程数据访问功能的技术对比
- 开源数据访问组件Smark.Data 1.7新增功能
- PHP中关于PDO数据访问抽象层的功能操作实例
- 【自然框架】之数据访问 —— 再小的类库也需要设计。
- 用Maven整合SpringMVC+Spring+Hibernate 框架,实现简单的插入数据库数据功能(二)
- Wildfish框架之数据访问篇
- ADO.net实体框架访问不到数据库最新数据问题
- 数据储存和访问—登录记住 4000 密码功能
- 打造结构一体化、功能多元化的高效数据流水线