随笔分类 - MyOql
开源的ORM
摘要:Logo: MyOql是我写的ORM,目前仅支持 MSSql2005+ ,从2009年到今天,已使用过不少项目,之后会写 其它关系数据库的解析器: MySql,Sqlite,Oracle 等。 代码地址(最新版): C#: http://code.taobao.org/svn/MyOql/ Java
阅读全文
摘要:我的ORM索引测试环境台式机:主板:映泰Z77CPU:i5 3470(3.2GHz)内存:DDR3 1600 8G(单条)硬盘:创见 SSD 256GORM从过程上,可以分两个大的部分:生成SQL把返回的数据(DataReader 或 DataSet)转换成 强类型的结果集生成SQL测试用比较复杂的...
阅读全文
摘要:我的ORM索引支持最好的是SqlServer2005,Sqlserver2008,SqlServer2012 ,后续将支持:MySql,Sqlite,Oracle。1.分页差别MsSql 2005,2008分页采用了 RowNumberMsSql 2012分页使用 Offset {skip} Fet...
阅读全文
摘要:我的ORM索引对某一个查询频繁重复,应该使用缓存。缓存应该是可以配置。配置Web.config: MyOql.config: 配置项db: 指定数据库配置项Owner: 指定数据库前缀Name: 数...
阅读全文
摘要:我的ORM索引ORM的功能两个基本功能翻译:对象查询转化为SQL映射:把查询结果转化为实体更多功能如果仅仅实现这两个功能,那这两个是可以独立的,实现起来也就很简单了。但MyOql的目标还有以下部分:缓存:通过配置文件,在运行时配置缓存。数据变更后(包含存储过程执行后的数据变更),自动破坏缓存对象。分...
阅读全文
摘要:我的ORM索引数据库连接字符串格式生成数据库实体,要求数据库完整定义到一个库中。 在App.config 中配置为 dbo 项。providerName中分为两部分:数据库和版本号。数据库定义枚举:public enum DatabaseEnum{ /// /// 指 SqlServe...
阅读全文
摘要:我的ORM索引dbo.Event需要新建一个类,继承:IDboEvent,并设置给:dbo.Event,如: dbo.Event = MyOqlEvent.GetInstance();在 IDboEvent中有如下事件:// 批量插入前事件。参数是:当前实体,插入的数据集,返回值。 ...
阅读全文
摘要:我的ORM索引权限范围权限可以控制以下部分:页面按钮表格列 (未完成)菜单表的行其中:页面权限,需要在程序请求之前进行判断。按钮权限,表格列权限,需要在请求页面之后,通过JavaScript,动态隐藏,如果认为不安全,则再对Post的URL进行权限设置。(web.config/appSetting ...
阅读全文
摘要:我的ORM索引很多时候,批量方案是解决性能的关键批量插入SqlBulkCopy利用SqlBulkCopy 是性能最高的方式实现:var s = dbr.Menu.NewMyOqlSet();s.AddRow(o => o.Id == 1 & o.Name == "33");s.AddRow(o =>...
阅读全文
摘要:我的ORM索引单库事务与分布式事务单库事务: 性能更好,应用于一个数据库时的场景,当数据库发生变化,如拆分为多个服务器,代码需要修改。分布式事务:性能相对较差,但有更大的适用场景。当数据库发生变化,如拆分为多个服务器,代码可能不需要修改。由于事务会引起资源争抢,互联网平台,越来越趋向无事务处理,追求...
阅读全文
摘要:我的ORM索引删除语法var 影响行数 = dbr.表.Delete(条件).Execute();问题1.如果没有Where条件,同样会报错。
阅读全文
摘要:我的ORM索引更新语法var 影响行数 = dbr.表.Update(实体).Where(条件).Execute();实体类型:更新的实体类型和添加的实体类型一样,有三类:1. 任何C#类。2. 字典3. WhereClip 表达式问题1. 如果没有Where条件 ,虽然编译正确,但是在运行时会报错...
阅读全文
摘要:我的ORM索引添加的语法:var 影响行数 = dbr.表.Insert(实体).Execute();实体类型1. 任何C#类。如:public class Entity{ public string Name{get;set;} .... }2. 字典3. WhereClip 表达式dbr.Me...
阅读全文
摘要:我的ORM索引概述http://code.taobao.org/svn/MyOql/这是我自己写的开源ORM教程,我想先从场景示例中切入介绍,先有一个感性的认识,以小见大,触类旁通,有了这个认识,就能自行扩展出更多的用法。数据常用操作 CURD,ORM也一样。ORM生成的实体应该有一个根,我们叫它:...
阅读全文