前面我有一篇随笔重复,为什么我们要不断重复讲述的是我在项目开发中的苦恼,引发了很多人讨论,大家各出高招,有人提到ORM,按我的愚见,ORM是在应用程序的类和数据库中表及视图建立一对一关系,例如,数据库中有表tblarticle,那么与之对应,我们可以建立一个articleItem对象来表示单条的记录,表的每个字段做为articleItem的成员变量,对应表的insert,update,delete以及select item及select all等存储过程,我们可以为articleitem建立对应的方法,然后在方法中用ADO.NET及对应的存储过程来完成数据的抽取,修改等.并且,我们可以在articleitem的基础上建立articleitemcollection以表示多条记录,这样,就将单条记录的更新变成了建立一个articleitem对象,给article对象的各种属性赋值,最后调用像articleitem,update()这样的方法来完成数据操纵的目的.这种实现方式其实很容易令人接受,并且,如果A负责写数据存取层的话,B用的时候,几乎不用关心是在操纵哪个表,而只关心操纵的是何种对象.非常类似我们使用.NET类库中对象一样. <%@ CodeTemplate Language="C#" TargetLanguage="C#" Debug="False" Description="Simple CodeSmith Project" %>
<%@ Property Name="Developer" Type="System.String" Category="Context" Description="开发者名称" %> <%@ Property Name="NameSpace" Type="System.String" Category="Context" Description="名字空间" %> <%@ Property Name="ClassName" Type="System.String" Category="Context" Description="类名" %> /**//////////////////////////////////////////////////////////////////////////////////////// //文件名:<%=ClassName%>.cs //说明:一个简单的类架构生成器 //版权所有 @ <%=DateTime.Now.Year%> 客户名称 //历史更新 // <%=DateTime.Now%> <%=Developer%> 零版本 /**//////////////////////////////////////////////////////////////////////////////////////// using System; namespace <%=NameSpace%> { /**////<summary> ///测试类 ///</summary> public class <%=ClassName%> { /**////<summary> ///构造器 ///</summary> public <%=ClassName%>() { } ~<%=ClassName%> { } } } 这段模板生成的C#代码如下 /**////////////////////////////////////////////////////////////////////////////////////////
//文件名:MyClass.cs //说明:一个简单的类架构生成器 //版权所有 @ 2005 客户名称 //历史更新 // 2005-5-19 17:39:13 上午 Heroman 零版本 /**//////////////////////////////////////////////////////////////////////////////////////// using System; namespace FunSoft { /**////<summary> ///测试类 ///</summary> public class MyClass { /**////<summary> ///构造器 ///</summary> public MyClass() Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=424569 |
|