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欢迎指教. 如您需要,欢迎联系.
------解决方案--------------------
帮你顶一下吧。