C#运用委托手动创建ORM(摒弃.NET反射机制)

经常在项目中运用ORM框架,.NET上,除了EF、NHibernate外,还有很多。最近用C#简单的创建了一个ORM框。这要从对Model的认识开始,都知道,对一个对象来说,赋值或取值操作,实际上就是对一个对象的实例变量的操作,即使我们这样写:publicstringNames{get;set;},实际上操作的还是实例对象的变量,只是某种形式上的简化而已。在编程的世界里,最长见的数据形式就是key-value,用它几乎可以描述任何对象和数据。例如:属性(属性名(key)=属性值(value))、json、二维数组([{key:value},{key:value},…..])。由于物质的客观实在性,我们在认知事物的过程中,都会对物质进行标识,通俗的讲,也就是给它定义一个名字,而这个名字,非常方便我们进一步去了解事物的本质。在以下的ORM程序设计中,用到了数据字典Dictionary<string,object>,用string来定义数据的名字,用object来存储对象的信息,由此,我把对对象的属性的操作,转化为对数据字典的操作,在数据处理逻辑中,运用数据字典,生成执行SQL。在这里Model统一派生于EntityBase(抽象类). <无> .CodeEntity .code_pieces ul.piece_anchor{width:25px;position:absolute;top:25px;left:-30px;z-index:1000;}.CodeEntity .code_pieces ul.piece_anchor li{width:25px;background: #efe;margin-bottom:2px;}.CodeEntity .code_pieces ul.piece_anchor li{border-left:3px #40AA63 solid;border-right:3px #efe solid;}.CodeEntity .code_pieces ul.piece_anchor li:hover{border-right:3px #40AA63 solid;border-left:3px #efe solid;}.CodeEntity .code_pieces ul.piece_anchor li a{color: #333;padding: 3px 10px;}.CodeEntity .code_pieces .jump_to_code{visibility:hidden;position:relative;}.CodeEntity .code_pieces .code_piece:hover .jump_to_code{visibility:visible;}.CodeEntity .code_pieces .code_piece:hover .jump_to_code a{text-decoration:none;}.CodeEntity .code_pieces h2 i{float:right;font-style:normal;font-weight:normal;}.CodeEntity .code_pieces h2 i a{font-size:9pt;background: #FFFFFF;color:#00A;padding: 2px 5px;text-decoration:none;}

C#运用委托手动创建ORM(摒弃.NET反射机制)

相关文章:

你感兴趣的文章:

标签云: