一次简单的ORM调研】的更多相关文章

    对于ORM,公司一直在用轻量级的PetaPoco,PetaPoco是挺轻巧,易用性和性能都非常优秀.但也有很多的缺点,在组装复杂sql语句的时候有bug,记忆中使用orderby.sum的时候经常会有问题:特殊情况下数据库链接有问题:具体问题记不清了,后来同事修改源代码解决了这个问题:本身不支持linq,不过github上有人提供了linq的支持:功能少,没有内置使用缓存,虽然公司自己实现了一套对Runtime和Memche的封装的框架,但并没有封装的很强大,写数据访问层的代码时,还是需…
一个简单的ORM制作大概需要以下几个类: SQL执行类 CURD操作类 其他酱油类 先从SQL执行类说起,可能会涉及数据库的迁移等问题,所以需要定义一个接口以方便迁移到其他数据库, 事务没提供命名,若需要命名可修改为可变参数,IHelper代码如下: internal interface IHelper:IDisposable { int ExecuteQuery(string txt, IEnumerable<IDataParameter> ps, bool issp);//用于执行INSE…
还记得David I 今年四月来盛大时,被问及“反射机制能再做得好一点吗?我们想放弃RTTI”,David I 回答“这的确是需要考虑的地方,当然RTTI我们不会放弃的”.(这个白胡子的老哥哥还真很可爱,当年Borland几经起落,唯一能看得顺眼的就是David I). 我还以为RTTI在D2010最多只是改良,炒冷饭而已.没想到,RTTI不仅能反射Public.protected.Private里的信息,还能动态执行该类里的方法,更惊奇的是,还支持Attribute.D2010 New RTT…
背景: 在开发ASP.NETMVC4 项目中,虽然web.config配置满足了大部分需求,不过对于某些特定业务,我们有时候需要添加新的配置文件来记录配置信息,那么XML文件配置无疑是我们选择的一个方案之一.下面简单谈谈XML的读取.  一. xml.linq读取xml 1.新建一个data.XML文件 <Customers> <Customer> <Name>Frank</Name> <City>成都</City> <Cont…
背景: 在开发ASP.NETMVC4 项目中,虽然web.config配置满足了大部分需求,不过对于某些特定业务,我们有时候需要添加新的配置文件来记录配置信息,那么XML文件配置无疑是我们选择的一个方案之一.下面简单谈谈XML的读取.  一. xml.linq读取xml 1.新建一个data.XML文件 <Customers> <Customer> <Name>Frank</Name> <City>成都</City> <Cont…
介绍 本篇将介绍实现简单的ORM,即:对数据表的通用操作:增.删.改.查 数据访问层 数据访问层类图 类说明: 1.DbProvider(供应):为数据操作提供基本对象,如:连接.操作对象.事务... 2.DbContext(环境):执行数据操作,如:返回DataReader.执行单条语句.执行事务... 3.SqlContext(SQLServer环境):针对不同数据库的操作环境.(本例为针对SQLServer) 代码说明: public int ExecuteNonQuery(Func<Db…
使用sqllite3和metadata简单的封装了个简单的orm #!/usr/bim/python #-*-coding: utf-8 -*- import threading import sqlite3 import sys __module__ = sys.modules[__name__] def setup_database(database): Mapper.initialize(database) def bind_mapper(mapper_name, model_cls, m…
1.支持ORM,最基础的两个信息是表的信息和字段信息.这两个信息,如果用Attribute 来辅助,代码更简洁和可读性更好.可以把属性名当做真实字段名,也可以将特性里的属性当成真实姓名,再加上字段标题(可以当成注释).必填字段.是否为主键.显示格式等等,如果没有Attribute ,类.属性的辅助信息必须用其他信息来描述,非常麻烦. usesSysUtils, RTTI, TypInfo,Types; typeTable = class(TCustomAttribute)private FNam…
不说废话,直接上干货,如发现问题,欢迎大家指出,谢谢! //------------------------------------MySQlServerORM [简单 CURD] using System; using System.Collections.Generic; using System.Linq; namespace COMMOM { using C10.ZRF.Model.Filter; using System.Configuration; using System.Data…
目前有很多开源的ORM项目,大多情况下也不需要我们重复去造轮子,我们只需要了解轮子怎么造的,怎么用就可以,下面简单说一下怎么通过实体生成一个SQL语句: 先建立2个Attribute类,TableAttribute.ColumnAttribute   , 且希望TableAttribute只想标记在实体类上,所以限制 [AttributeUsage(AttributeTargets.Class)],而希望ColumnAttribute只标记在属性上 [AttributeUsage(Attribu…