CRL开发框架发布了,一款面向对象的ORM框架

CRL是一个面向对象的轻便型ORM业务框架
数据处理使用了对象/数据映射,条件查询采用Lambda表达式来表示,增加了可编程性和可靠性,出错机率低,同时也能用原生的SQL实现查询或操作
数据连接以编程方式进行配置,支持多个库,参见Global.asax中实现,首次使用请更改LocalSqlHelper.CreateDbHelper中数据连接
通过业务对象封装继承,实现业务重用性,比较常用的封装有,会员/账户系统,字典配置,分类系统,在线支付,订单/购物车,权限验证/菜单系统等等,当然也可以写自已的业务封装
效率问题:在对象映射上作了缓存处理,查询效率几乎等于手写SQL效率,注:CRL对象查询默认是 with(nolock)
数据安全:所有标准查询都经过参数化处理,无注入风险
动态存储过程支持与查询转换,极大减少了数据库维护工作,增加开发效率
日志绑定,通过CRL操作数据时发生错误,会生成对应的错误日志,包括执行的语句,参数
CRL依赖CoreHelper.dll,此DLL是一个功能类库,包括数据访问,日志等功能

特点详细示例:
  • 表达式查询 对表达式查询转换为等效SQL语法,如:

    var order = OrderManage.Instance.QueryItem(b=>b.Id==1 && b.UserId==2);
    等效为 
    select * from Order where id=1 and UserId=2
    更新删除同理

  • 对象表自动创建 首次调用会自动创建对象对应的表,不需从数据库维护,也可以编程方式对表结构进行检查
  • 缓存绑定 对任意基本查询可作数据缓存处理,设置过期时间后自动更新缓存,或直接创建当前对象数据缓存

    var query = Code.ProductDataManage.Instance.GetLamadaQuery();//创查完整查询
    query = query.Where(b => b.Id < 700); 
    int exp = 10;//过期分钟 
    var list = Code.ProductDataManage.Instance.QueryList(query, exp);//返回一个查询缓存,条件不一样,缓存也不一样
    调用对象数据缓存
    var list = Code.ProductDataManage.Instance.QueryFromAllCache(b => b.Id < 700);//在内部缓存数据中查找
  • 动态编译(仅MSSQL) 将任意查询/更新/删除操作自动编译为数据库等效存储过程,大大提高运行效率

    var query = Code.ProductDataManage.Instance.GetLamadaQuery();
    query = query.Where(b => b.Id < 700); 
    string name = Request["name"]; 
    query = query.Where(b => b.InterFaceUser == name);
    var list = Code.ProductDataManage.Instance.QueryList(query, compileSp: true);
    将会创建并调用等效存储过程
    CREATE PROCEDURE [dbo].[ZautoSp_6B517FF62BDE99E6] (@id0 nvarchar(500),@InterFaceUser1 nvarchar(500)) AS set nocount on select t1.[AddTime],t1.[BarCode],t1.[CategoryName],t1.[Id],t1.[InterFaceUser],t1.[Number],t1.[ProductChannel],t1.[ProductId],t1.[ProductName],t1.[PurchasePrice],t1.[SoldPrice],t1.[Style],t1.[SupplierId],t1.[SupplierName],t1.[TransType] from ProductData t1 with(nolock) where (t1.Id<@Id0) and [email protected]
  • 继承使用业务封装 通过继承对象或业务类型,调用内置业务封装或实现自已的业务封装,增加开发效率

    var user = new User(){Name="test"};
    UserManage.Instance.Login(user,"user",false);//实现Form验证登录,并设定票据
  • 多数据库支持 通过实现数据库适配器,实现多数据库支持,详见"支持数据库详细"
支持数据库详细:
数据库 基本查询 自动创建表 with(nolock)查询 批量插入 存储过程 动态编译存储过程 自带业务封装 备注
MSSQL 支持 支持 支持 支持 支持 支持 支持 需创建分页sp_page_MSSql.sql 存储过程
MySQL 支持 支持 不支持 不支持 支持 不支持 支持 需创建分页sp_page_MySql.sql 存储过程
ORACLE 支持 支持(需高级权限) 不支持 不支持 支持 不支持 部份支持 需创建分页sp_page_ORACLE.sql 存储过程
动态执行脚本 sp_ExecuteScript_ORACLE.sql
.Net Framework 4以上
建议配合MVC使用,面向对象开发会省很多事

测试项目/示例 点击下载

测试项目预览

时间: 2024-11-02 15:01:12

CRL开发框架发布了,一款面向对象的ORM框架的相关文章

CRL开发框架发布啦,一款面向对象的ORM业务框架

CRL是一个面向对象的轻便型ORM业务框架数据处理使用了对象/数据映射,数据操作采用Lamada表达式来表示,增加了可编程性和可靠性,出错机率低,同时也能用原生的SQL实现查询或操作数据连接以编程方式进行配置,支持多个数据库,参见Global.asax中实现,首次使用请更改LocalSqlHelper.CreateDbHelper中数据连接通过业务对象封装继承,实现业务重用性,比较常用的封装有,会员/账户系统,字典配置,分类系统,在线支付,订单/购物车,权限验证/菜单系统等等,当然也可以写自已的

CRL开发框架发布2.1版

CRL 2.1.0.0 CRL是一个面向对象的轻便型ORM业务框架 数据处理使用了对象/数据映射,采用Lambda表达式来表示条件查询,增加了可编程性和可靠性,出错机率低,同时也能用原生的SQL实现查询或操作 数据连接以编程方式进行配置,支持多个库,多种数据库类型,参见Global.asax中实现,首次使用请更改LocalSqlHelper.CreateDbHelper中数据连接 通过业务对象封装继承,实现业务重用性,比较常用的封装有,会员/账户系统,字典配置,分类系统,在线支付,订单/购物车,

DNetORM 一款轻量级的ORM框架

使用介绍 1.配置文件配置好连接串 connectionName的值对应连接串的name <appSettings> <add key="connectionName" value="DB"/> </appSettings> <connectionStrings> <!--<add name="DB" connectionString="Data Source=localhos

打造一款人见人爱的ORM(一)

      "很多人都不太认可以第三方ORM,因为考虑的点不够全面,没有用户群体大的ORM有保证,这点是不可否认确是事实.但是往往用户群体大的ORM又有不足之处,今天我们就来聊聊关于ORM的话题,打造一款人见人爱的ORM框架." 小程简介       季健国(蚂蚁Ant),10年的工作经验, 7年的IT经验是一枚名副其实的老菜鸟.技术无边界,编程靠思想.目前主要研究方向为ORM底层核心,爬虫,WebAPI,SOA,Docker,Xamarin,微信小程序,微服务架构:个人爱好:阅读,跑

COCO-Android开发框架发布

一. COCO-Android说明 二. COCO-Android结构图 三. COCOBuild 四. COCOFrame 一.COCO-Android说明 1. COCO-Android是支撑Android原生开发的一个轻量级框架.包含COCOBuild和COCOFrame两个部分,可分别单独使用.其核心思想为抽取Android整个项目过程中(编码只是其中少部分工作)大量的重复性工作,采用自动化实现, 从而大幅度提高团队规范,开发效率,产品质量,降低开发成本. 2. COCOBuild为构建

27款经典的CSS框架

利用 CSS 框架,可以简化你的工作,提高工作效率.CSS 框架是一系列 CSS 文件的集合体,包含了基本的元素重置,页面排版.网格布局.表单样式.通用规则等代码块.下面给你推荐了27款优秀的CSS框架,你可以选用. 1. 960gs 960 像素的页面宽度似乎成为了一种设计标准,在当前各种分辨率下,能够很好地展现网页内容.提供较为常用的尺寸来简化网页设计过程,使工作简单高效. 2. YUI 2: Grids CSS 芒果曾经介绍过由雅虎开发小组推出的 YUI,而这个 YUI Grids CSS

Ligg.EasyWinApp: 一款WIndows应用编程框架介绍

本解决方案是一个Windows应用编程框架和UI库,包括四个项目: Ligg.EasyWinForm是一个Winform应用编程框架和UI库.通过这个该框架,不需任何代码,通过XML配置文件,搭建任意复杂的Windows应用界面,以类似Execel公式的方式实现基本的过程控制(赋值.条件判断.循环.跳转)和功能(字符处理.文件处理.Windows脚本执行.逻辑运算.数学运算.数据输入输出-支持String.Jonson.DataTable类型的数据):动态加载“即插即用“的.Net组件或COM组

学iOS开发(一)——实现一款App之Foundation框架的使用

当你着手为你的应用编写代码的时候,你会发现有许多可供使用的Objective-C的框架类,其中尤其重要的就是基础框架类,它为平台所有的应用提供基础服务.基础框架类中包括了表示字符串和数字等基本数据类型的值类(value classes),也有用来存储其他对象的集合类(collection classes).你将会依赖值类和集合类为你的ToDoList app编写大量代码. 值对象(Value Objects) Foundation框架提供了生成字符串.二进制数据.日期和时间.数字以及其他值对象的

基于Mono跨平台移动应用开发框架发布Xamarin 3.0

跨平台移动应用开发框架Xamarin可以让你完全用C#编写你的应用程序,在iOS.Android.Windows Phone 8.Windows8和mac平台上共享相同的代码.你可以重用你最喜欢的.NET库,而且还很容易地使用平台特定的库和框架.Xamarin提供了高性能编译的代码和完全访问所有本地API.所以Objective-C和Java能干的事,Xamarin的C#平台工具一样可以出色完成. Xamarin 在5月28日发布了Xamarin 3,主要有四个重要的变化. 首先,他们有了一个坚