ELinq ORM数据访问组件

我要开发同款
匿名用户2012年12月17日
35阅读
开发技术.NET
所属分类程序开发、ORM/持久层框架
授权协议Apache

作品详情

ELinq是一个轻量简单易用的开源LinqORM数据访问组件,支持Nullable类型和枚举类型,对Linq的谓词提供了完美的支持,旨在让绝大部份的主流数据库都使用Linq来进行程序开发,让开发人员访问数据库从SQL中解放出来,易学易用上手快,配置简单,并且提供了源代码下载,方便定制。支持多数据库,目前支持Access、SQLServer、SqlCE、SQLite、MySQL、ORACLE,未来还会支持更多的数据库。

特点:简单、高效、易用、灵活、快捷

1.配置简单,支持多数据库2.支持Linq3.支持集合对象的批量添加、删除、修改4.灵活的批量删除(通过Linq表达式)功能5.灵活的批量更新(通过Linq表达式)功能6.支持一对一映射(不需要配置映射关系自动映射)7.支持一对多(不需要配置映射关系自动映射)8.支持多对一(不需要配置映射关系自动映射)9.遵从数据库的设计理念,不支持多对多,可以把多对多转化成两个一对多10.不支持级联更新、级联删除,开发人员完全手工维护外键引用完整性11.不支持LazyLoad机制,默认就不会加载,除非指定Include方可12.不支持Session缓存机制13.不支持二级缓存14.OR映射也支持xml配置文件15.OR映射可以不需要任何Attribute配置16.OR映射的方式:a.FluentAPI方式,b.Attribute方式,c.约定方式,d.混合方式(可以混合a、b、c三种方式,映射的优先级a>b>c),e.Xml方式17.字符串配置简单,遵从.net的配置规范,没有另起灶炉,比如EF,或者NH18.只要有有数据库关系理念、懂得Linq表达式就能马上上手19.ELinq主要对字符串类型做了参数化,数值类型没有做参数化处理,由于有些数据库函数不支持数值类型的参数化参数。

设计理念

一:约定胜于配置

连接字符串的配置完全遵循.Net的连接字符串配置规范。表名映射原则:默认情况下表名和实体类名完全一致,如果不一致但是大部分都遵循一定的规律,比如表名都是复数,类名都是单数等,那么可以通过通过SetClassNameToTalbeName策略方法来进行,针对个别不一致情况可以通过TableAttribute标签来制定,或者通过自定义ClassMap来进行,也可以通过XML方式进行统一配置列名映射原则:默认情况下实体的属性或字段和表中列名完全一致(不区分大小写),如果不一致那么可以通过ColumnAttribute标签来制定,也可以通过自定义ClassMap来进行,也可以通过XML方式进行统一配置单一主键映射原则:默认情况下实体的ID属性或”实体名称"+ID的属性自动映射为表的主键,当字段或属性的类型是Int型或Long类型时,那么该字段在数据库中应是自动增一或基于序列的方式多主键映射原则:如果表中有联合主键那么需要在是实体类中把对应的字段或属性添加IdAttribute标签即可一对多映射原则:假设有两个实体Customer和Order两个实体,Customer里面包含一个Order的列表属性,那么只需要在Order类里面包含一个CustomerID的属性或字段即可自动完成一对多映射,当然也可以通过AssociationAttribute标签来指定映射的ThisKey和ThatKey来手动建立关联(建议自动建立)。多对一映射原则:假设有两个实体Customer和Order两个实体,Order里面包含一个Customer的属性引用,那么只需要在Order类里面包含一个CustomerID的属性或字段即可自动完成一对多映射,当然也可以通过AssociationAttribute标签来指定映射的ThisKey和ThatKey来手动建立关联(建议自动建立),其实一对多和多对一的映射完全一致都需要在多方的那里添加一个属性(一方的类名名称+“ID”)。多对多映射原则:不支持,需要转换成两个一对多映射,和数据库完全保持一致.

二:基于关系的OR映射的原则

表和实体是一一对应的,不支持多对多,完全遵循数据库的设计规范,降低开发人员的学习成本(因为数据库不支持多对多,如果OR映射支持多对多那么开发人员将要学习多对多的映射规则,比如NHibernate,ManyToMany、Set、Bag、Reverse等配置规范以及在多对对数据保存的时候也需要很多学习成本)

三:无状态原则

DbContext中没有保存实体的状态,没有任何数据缓存,所有的数据都是和数据库实时的,只要调用DbSet的Insert、Update、Save方法将立即和数据库进行对应的操作。

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论