读书人

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

发布时间: 2012-06-15 19:37:05 作者: rapoo

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欢迎指教. 如您需要,欢迎联系.


[解决办法]
帮你顶一下吧。

读书人网 >C#

热点推荐