这是我设计的一个轻量级的 .Net ORM (Object Relational Mapping) 数据访问及 WEB 框架。对于 ORM 和 Sql 调用,它都拥有清晰和易用的接口,目前支持 SqlServer、SQLite、MySql、Access、Firebird、PostgreSQL、Oracle 等数据库。对于 WEB 开发,它既支持 ASP.NET 2.0 的 DataSource 方式,也支持 Ruby On Rails 风格的 MVC 方式。支持 Linq 方式的查询,也提供一个简单的 IoC。

  目前,数据库部分已经支持多主键、多表联合查询、快速分页、隐式数据库事务、连贯API查 询、ActiveRecord风格查询、动态对象、部分保存、自动创建数据表、一对一、一对多、多对多关系等功能,具体实现请参阅 Samples 中的例子程序和单元测试的内容。

  而 DataSource 部分,因为绑定数据访问组件,所以可以只需要修改配置文件,不需要修改任何代码的在不同的数据之间切换。另外,还支持按命名约定的方式绑定“新建”和“编辑”页面的控件,以最少的代码完成输入、验证、保存等一系列操作。

  Rails 风格的 MVC 框架目前已经完成 MVC 部分,脚手架,基类中的 LinkTo、UrlTo 等快捷函数,Http Get 支持等。目前脚手架部分没有数据验证模块,不过,自己写的 MVC 代码可以自行实现验证。

   这个版本中,例子程序访问的数据库主要是 Access,而单元测试使用的数据库是 SQLite,通过修改配置文件中数据源部分,可以使之不需要重新编译即可工作于其它数据库上。配置部分通过 App.config 进行,请参阅 Samples 中的例子程序中的 App.config 和 UnitTest 项目内嵌的配置文件 UnitTest.config.xml 。所有例子程序在 MS Sql Server 2005 Express、MS Sql Server 2008 Express、 MS Access 2003、MySql 5.0、SQLite 3、Firebird 2.1.0, PostgreSQL 8.3.3 和 Oracle 10g Express 上测试过。



  v4.1 版主要的改变为:
  ·增加 QueryRequired 功能;
  ·更严格的编译时检查;
  ·Model 增加可覆盖的 OnInserting、OnUpdating、OnDeleting;
  ·重新整理 DbEntryDataSource 的事件;
  ·增加 ConditionBuilder;
  ·增加 NotIn 支持;
  ·增加 LoadRelation 函数;
  ·Bug 修正 ;


  下载本组件和浏览文档请访问 http://www.codeplex.com/DbEntry/

posted @ 2011-12-28 22:13 梁利锋 阅读(663) 评论(11) 编辑
摘要: 这是我设计的一个轻量级的 .Net ORM (Object Relational Mapping) 数据访问及 WEB 框架。对于 ORM 和 Sql 调用,它都拥有清晰和易用的接口,目前支持 SqlServer、SQLite、MySql、Access、Firebird、PostgreSQL、Oracle 等数据库。对于 WEB 开发,它既支持 ASP.NET 2.0 的 DataSource 方式,也支持 Ruby On Rails 风格的 MVC 方式。支持 Linq 方式的查询,也提供一个简单的 IoC。 目前,数据库部分已经支持多主键、多表联合查询、快速分页、隐式数据库事务、连贯AP.阅读全文
posted @ 2011-05-24 22:22 梁利锋 阅读(2411) 评论(29) 编辑
摘要: 这篇文章,是2004年写的,本来没准备再重发,今天因为一些事,翻了出来,鉴于现在仍然有很多人停留在YY工厂模式和单件模式上,另外,我觉得这篇文章和所涉及的代码写的还是挺不错的,所以重发出来,个人觉得,还是有意义的。  前几天,和朋友谈论《点睛简单脚本引擎》的代码,发现,其实还是需要讲解一下,特别是说明为什么这种方式比直观的代码编写更好。  脚本本身的格式比较简单,所有的参数用“|”分隔,第一个参数是命令名,如果命令名为空,则此行被视为“注释”。  从类图来看代码结构就非常清晰了,其中,黄色的类是“静态类”,也就是只包含一些静态函数的类;而粉色的类是“自定义异常”;青色的类是“接口”;淡绿色的类阅读全文
posted @ 2010-12-23 13:40 梁利锋 阅读(1354) 评论(8) 编辑
摘要: 数据库升级,需要对几个表进行一些数据转换,具体是这样:针对每一个 Item,从 orders 表里查出 Shop_Id,并把此 Id 赋值给 items 和 skus 中的 Shop_Id。下面是最初实现的代码,其中 LargerResultProcessor 是一个基类,负责遍历泛型参数 T 所指向的数据库表,并以每页 100 项的方式分页,并对每一项调用 ProcessItem 函数,而子类只...阅读全文
posted @ 2010-11-19 15:23 梁利锋 阅读(2184) 评论(23) 编辑
摘要: Cecil 是 Mono 的一个子项目,用于对程序集进行读写,并且已经用于 Mono 的调试,Reflector 也使用它作为底层库。最近把 DbEntry 使用 Emit 生成程序集的方式,改成了使用 Cecil 的方式,就我的感受来说,Cecil 是比较优秀的,有一些地方,比 Emit 使用起来还舒服的多;不过,有一些地方也比较繁琐。  我使用的是 Git 里的最新版本,如果大家要测试的话,也...阅读全文
posted @ 2010-07-05 21:45 梁利锋 阅读(1474) 评论(3) 编辑
摘要: 在 初探 C# GPU 通用计算技术 中,我使用 Accelerator 编写了一个简单的 GPU 计算程序。也简单看了一些 Brahma 的代码,从它的 SVN 最新代码看,Brahma 要转移到使用 OpenCL.Net 作为底层了,于是也去网上搜索了一下,发现了 OpenCL.Net 和另一个相关的项目 OpenCLTemplate。看了一些它的代码,颇像 DirectCompute 的风格...阅读全文
posted @ 2010-05-24 20:47 梁利锋 阅读(2301) 评论(0) 编辑
摘要: GPU 的并行计算能力高于 CPU,所以最近也有很多利用 GPU 的项目出现在我们的视野中,在 InfoQ 上看到这篇介绍 Accelerator-V2 的文章,它是微软研究院的研究项目,需要注册后才能下载,感觉作为我接触 GPU 通用运算的第一步还不错,于是去下载了回来。在安装包里,包含了几个例子程序,比如著名的 Life 游戏,不过,Life 游戏,相对于刚接触 GPU 运算的我,还是稍显复杂...阅读全文
posted @ 2010-05-23 19:02 梁利锋 阅读(2571) 评论(8) 编辑
摘要: 设计模式是有效的架构设计方法,甚至可以说是面向对象编程的范例,不过,学习设计模式比学习一种同类型的语言(比如Java之于C#)困难得多。简历中不少人会或多或少提到设计模式,但是真的问时,大多又是只能说出“工厂”,“单例”之类的模式,这些模式是比较简单,同时也是重要的模式,不过,创建型模式更像味精,用于调味其它的结构性模式,脱离了结构性模式,创建型模式...阅读全文
posted @ 2010-05-15 09:10 梁利锋 阅读(1585) 评论(23) 编辑
摘要: 项目里数据库表有很多字段,而且有不少字段不确定长度,所以决定,把大多数不常用字段用 XML 序列化的方式,保存到一个字段内,不过却发现,从网上取一条 10K 左右的 XML 数据,反序列化,解析、转义,然后分别设置到4、5个对象中,这些对象,再对自身的不常用字段进行 XML 序列化,然后保存对象到数据库,竟然要花 5 秒左右的时间。  下载了一个 DotTrace + TestDriven.Net...阅读全文
posted @ 2010-04-24 13:27 梁利锋 阅读(1412) 评论(9) 编辑
摘要: 这是我设计的一个轻量级的 .Net ORM (Object Relational Mapping) 数据访问及 WEB 框架。对于 ORM 和 Sql 调用,它都拥有清晰和易用的接口,目前支持 SqlServer、SQLite、MySql、Access、Firebird、PostgreSQL、Oracle 等数据库。对于 WEB 开发,它既支持 ASP.NET 2.0 的 DataSource 方...阅读全文
posted @ 2010-04-17 16:42 梁利锋 阅读(2507) 评论(26) 编辑