背景
公司的项目开始实体框架,但对于公司的需求其性能不如意.故此开发一个适合公司需求的数据库框架.虽然市面的有很多类似框架,虽然各有所长但短处尤在.对秋天兄的cyq.data的思想颇有所感,cyq的发布使我茅塞顿开.mysoft的风格看似linq进而触发我使用扩展.在此感谢他们.
简介
Qin.Data是一个通用数据库处理框架(包含MSSQL ACCESS SQLITE EXCEL MYSQL DB2 ORACLE...只要你愿意实现接口就可以).很便捷地进行常用数据库操作(增删改查).其性能是几近纯ADO.NET.对于实体的查询采用emit实现,如果您还不满意可用此框架的代码生成器直接生成纯ADO.NET SQL形式.其主要特色就是性能和便捷的操作.
初始化配置
实例
1)查询.
查询实体
DBTool db=new DBTool(Table.EventBaseSet);//指定表
db.Where=EventBaseSet.EventID_.Equals_(3);//锁定记录
查询指定字段
db.Where=EventBaseSet.EventID_.Equals_(32);
var name=db.GetOneField<string>(EventBaseSet.EventID_);
多字段查询
db.Where=EventBaseSet.EventID_.Equals_(32);
var row=db.GetDestinationFields(EventBaseSet.EnabledBodyHtml_,EventBaseSet.Days_);
复合条件查询
DBTool db=new DBTool(Table.EventBaseSet);
(EventBaseSet.EventName_.Contains_("你好").OR_(EventBaseSet.Days_.BiggerThan_(22));
嵌套查询
DBTool db=new DBTool(Table.EventBaseSet);
CreaterSet.Name_.EqualsStr_("a")));
自定实体查询(包括多表查询)
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));
代码及实体生成
QQ:564064202欢迎指教.