DongLiORM简介:
   DongLiORM是一个基于.net framework 2.0 的,开源的轻量级的ORM产品。目前仅支持Sql Server 2000及其以上版本。支持1-N映射关系,不用写专门的配置文件,比Castle更加简便(当然,功能就……^_^)。

示例:
1、首先在app.Config的appSettings节中加入如下语句:
  
DongLiORM 介绍    <!--数据链接字符串-->
DongLiORM 介绍    
<add key="DbCon" value="server=dbserver;UID=sa;PWD=1234;database=TQM_2007;Pooling=true;Max Pool Size=50; Min Pool Size=10;"/>        
DongLiORM 介绍    
<!--发送Email的帐号-->
DongLiORM 介绍    
<add key="EmailUser" value="EmailUser"/>
DongLiORM 介绍    
<!--发送Email帐号的密码-->
DongLiORM 介绍    
<add key="EmailPwd" value="Email Password"/>
DongLiORM 介绍    
<!--发送Email的Server-->
DongLiORM 介绍    
<add key="EmailServer" value="EmailServerName"/>
DongLiORM 介绍    
<!--是否发送Email,如果为false,则不会发送Email-->
DongLiORM 介绍    
<add key="SendEmail" value="true"/>
DongLiORM 介绍    
<!--在Select Top N语句中N的缺省值-->
DongLiORM 介绍    
<add key="DefaultTop" value="300"/>   

2、建立自己的业务类

  1)1-1示例

DongLiORM 介绍using System;
DongLiORM 介绍    
namespace BUL.Security
    }

  2)1-N示例
DongLiORM 介绍using System;
DongLiORM 介绍    
using System.Collections;
DongLiORM 介绍    
using System.Text;
DongLiORM 介绍
DongLiORM 介绍    
namespace BUL.Security
    }

3、调用示例

   1)新增

DongLiORM 介绍 UserItem AUser=new UserItem();
DongLiORM 介绍      AUser.UserID
="C054965";
DongLiORM 介绍      AUser.Pwd
="C054965";
DongLiORM 介绍      AUser.UserName
="刘永红";
DongLiORM 介绍      AUser.Email
="yahongq111@163.com";
DongLiORM 介绍      
DongLiORM 介绍      DongLiORM.BusinessAtrribute Attr 
= Common.Tools.CommonTool.GetBusinessAtrr(typeof(BUL.Security.UserItem));
DongLiORM 介绍      Attr.Writer.Insert(AUser);

2) 查询
DongLiORM 介绍DongLiORM.BusinessAtrribute Attr = Common.Tools.CommonTool.GetBusinessAtrr(typeof(BUL.Security.UserItem));
DongLiORM 介绍      UserItem[] Users
=(UserItem[]) Attr.Reader.GetDataByCondition("UserID like @UserID",
  

3)修改,假设修改前面的AUser
DongLiORM 介绍     UserItem NewUser=AUser.NarrowClone();
DongLiORM 介绍     NewUser.UserName
="刘永红修改测试";
DongLiORM 介绍     NewUser.OldObject
=AUser;
DongLiORM 介绍     Attr.Writer.Update(NewUser);
4)删除  
DongLiORM 介绍   Attr.Writer.Delete(NewUser); 

备注:
      1)关于级联查询、DML:
          在1-N关系中,如果调用GetDataByCondition,会把所有相关的N层属性全部填充,如果只想查询本身,     则可以用GetSelfDataByCondition,对于删除操作,如果删除上级,则下级会跟着删除。对于Update,则不会跟着更改下级的外键,需自己手动更改。对于新增操作,会将所有的上级和下级数据全部存入数据库。
     
      2)关于事务处理:
          系统没有提供默认的事务支持功能,不过调用的时候可以用一下语句:
DongLiORM 介绍 using(System.Transactions.TransactionScope scope = new System.Transactions.TransactionScope())
          }
      3)关于性能:
          大量运用反射,没有做过严格的测试(所以性能应该不会很高)。这方面还有大量可以优化的地方(至少还可以用到缓存,但目前我还没有这样做)。     
     
         
      4)关于版权:
          既然说了开源,当然可以自由传播,修改,可以不加任何限制做商业用途,前提是保留第一版作者在源代码中的 版权描述,如果我将来有幸可以开公司,那么你不能跟我打这方面的官司:说这是你注册了的,有版权/专利权的产 品,我必须赔偿你的损失等等。
     
      DongLiORM 源码

      这是我的第一个公开作品,欢迎大家拍砖。
      刘永红<Yahongq111@163.com>
      2007-06-06 

相关文章: