日期:2014-05-18  浏览次数:20791 次

Qin.Data数据访问框架发布及使用说明



 
  1背景

公 司的项目开始实体框架,但对于公司的需求其性能不如意.故此开发一个适合公司需求的数据库框架.虽然市面的有很多类似框架,虽然各有所长但短处尤在.对秋 天兄的cyq.data的思想颇有所感,cyq的发布使我茅塞顿开.mysoft的风格看似linq进而触发我使用扩展.在此感谢他们.

  2 简介

  Qin.Data是一个通用数据库处理框架(包含MSSQL ACCESS SQLITE EXCEL MYSQL DB2 ORACLE...只要你愿意实现接口就可以).很便捷地进行常用数据库操作(增删改查).其性能是几近纯ADO.NET.对于实体的查询采用emit实 现,如果您还不满意可用此框架的代码生成器直接生成纯ADO.NET SQL形式.其主要特色就是性能和便捷的操作.

  3 初始化配置

   
配置文件
<appSettings>
  <add key="web" value="NO" />//是否是web开发
  <add key="databaseName" value="MSSQL" />//数据库类型
  <add key="linkString" value="Server=www.wwe.com.cn;database=HD01SystemDB;Uid=ss;Pwd=ss" />//连接字符串
</appSettings>

  3实例

1)查询. 

 查询实体

  DBTool db=new DBTool(Table.EventBaseSet);//指定表

 db.Where=EventBaseSet.EventID_.Equals_(3);//锁定记录
  var data=db.GetEntity<EventBaseSet>();//获取实体

 

 查询指定字段
DBTool db=new DBTool(Table.EventBaseSet);
  db.Where=EventBaseSet.EventID_.Equals_(32);

  var name=db.GetOneField<string>(EventBaseSet.EventID_); 

 

 多字段查询
  DBTool db=new DBTool(Table.EventBaseSet);
  db.Where=EventBaseSet.EventID_.Equals_(32);
  var row=db.GetDestinationFields(EventBaseSet.EnabledBodyHtml_,EventBaseSet.Days_);

 复合条件查询

  DBTool db=new DBTool(Table.EventBaseSet);
  db.Where=EventBaseSet.EventID_.BiggerThan_(32).And_
  (EventBaseSet.EventName_.Contains_("你好").OR_(EventBaseSet.Days_.BiggerThan_(22));

 嵌套查询 

  DBTool db=new DBTool(Table.EventBaseSet);
  db.Where= EventBaseSet.Creater_CreaterID_.Equals_(CreaterSet.CreaterID_.SelectFrom_(Table.CreaterSet).Where_(
  CreaterSet.Name_.EqualsStr_("a")));

 自定实体查询(包括多表查询)
  var sql="复制的sql语句";

  var data=DBTool.Database.GetEntity<自定义实体>(sql); 

 数据插入操作

  DBTool db=new DBTool( Table.CitySet);// db.StartTransaction=true;//是否开启事务db.SetInsertField(CitySet.CName_,"城市1");
  db.SetInsertField(CitySet.CID_,"10001");
  db.SaveChanges();
  var newID=db.NewID;//新生成的自增主键 

 
 数据更新操作
  //更新数据--------------
  db.SetUpdateField(CitySet.CName_,"城市一");
  db.SetUpdateField(CitySet.CID_,"1--1");
  db.Where= CitySet.CID_.Equals_(2)
  db.SaveChanges();
  //-----------------------

 

 数据删除

  db.DeleteWhere(EventBaseSet.EventID_.Equals_(2));
  db.SaveChanges();

代码及实体生成 (含有代码编译,当你数据库变动时你根本不需要改什么)

 

 

  

 

QQ:564064202欢迎指教. 如您需要,欢迎联系.


------解决方案--------------------
帮你顶一下吧。