DongLiORM简介:
DongLiORM是一个基于.net framework 2.0 的,开源的轻量级的ORM产品。目前仅支持Sql Server 2000及其以上版本。支持1-N映射关系,不用写专门的配置文件,比Castle更加简便(当然,功能就……^_^)。
DongLiORM是一个基于.net framework 2.0 的,开源的轻量级的ORM产品。目前仅支持Sql Server 2000及其以上版本。支持1-N映射关系,不用写专门的配置文件,比Castle更加简便(当然,功能就……^_^)。
示例:
1、首先在app.Config的appSettings节中加入如下语句:
<!--数据链接字符串-->
<add key="DbCon" value="server=dbserver;UID=sa;PWD=1234;database=TQM_2007;Pooling=true;Max Pool Size=50; Min Pool Size=10;"/>
<!--发送Email的帐号-->
<add key="EmailUser" value="EmailUser"/>
<!--发送Email帐号的密码-->
<add key="EmailPwd" value="Email Password"/>
<!--发送Email的Server-->
<add key="EmailServer" value="EmailServerName"/>
<!--是否发送Email,如果为false,则不会发送Email-->
<add key="SendEmail" value="true"/>
<!--在Select Top N语句中N的缺省值-->
<add key="DefaultTop" value="300"/>
<add key="DbCon" value="server=dbserver;UID=sa;PWD=1234;database=TQM_2007;Pooling=true;Max Pool Size=50; Min Pool Size=10;"/>
<!--发送Email的帐号-->
<add key="EmailUser" value="EmailUser"/>
<!--发送Email帐号的密码-->
<add key="EmailPwd" value="Email Password"/>
<!--发送Email的Server-->
<add key="EmailServer" value="EmailServerName"/>
<!--是否发送Email,如果为false,则不会发送Email-->
<add key="SendEmail" value="true"/>
<!--在Select Top N语句中N的缺省值-->
<add key="DefaultTop" value="300"/>
2、建立自己的业务类
1)1-1示例
using System;
namespace BUL.Security
{
/**//// <summary>
/// 实体类UserItem 。(属性说明自动提取数据库字段的描述信息)
/// 需要注意的是,属性名必须和字段名一一对应,这样就可以少些好多的配置文件了。
/// 如果用过大名鼎鼎的NHibernate,你可能知道我为什么这样说了^_^。
/// </summary>
///
[DongLiORM.BusinessAtrribute("UsersView" //对应的数据表名称
,new string[]{"UserID"} //对应数据表的主键
,typeof(UserItem) //对应的业务对象类型
)]
public class UserItem:DongLiORM.BusinessObject
{
public UserItem()
{ }
private string _userid;
private string _username;
private string _pwd;
private string _email;
/**//// <summary>
///
/// </summary>
public string UserID
{
set { _userid = value; }
get { return _userid; }
}
/**//// <summary>
///
/// </summary>
public string UserName
{
set { _username = value; }
get { return _username; }
}
/**//// <summary>
///
/// </summary>
public string Pwd
{
set { _pwd = value; }
get { return _pwd; }
}
/**//// <summary>
///
/// </summary>
public string Email
{
set { _email = value; }
get { return _email; }
}
}
}
namespace BUL.Security
{
/**//// <summary>
/// 实体类UserItem 。(属性说明自动提取数据库字段的描述信息)
/// 需要注意的是,属性名必须和字段名一一对应,这样就可以少些好多的配置文件了。
/// 如果用过大名鼎鼎的NHibernate,你可能知道我为什么这样说了^_^。
/// </summary>
///
[DongLiORM.BusinessAtrribute("UsersView" //对应的数据表名称
,new string[]{"UserID"} //对应数据表的主键
,typeof(UserItem) //对应的业务对象类型
)]
public class UserItem:DongLiORM.BusinessObject
{
public UserItem()
{ }
private string _userid;
private string _username;
private string _pwd;
private string _email;
/**//// <summary>
///
/// </summary>
public string UserID
{
set { _userid = value; }
get { return _userid; }
}
/**//// <summary>
///
/// </summary>
public string UserName
{
set { _username = value; }
get { return _username; }
}
/**//// <summary>
///
/// </summary>
public string Pwd
{
set { _pwd = value; }
get { return _pwd; }
}
/**//// <summary>
///
/// </summary>
public string Email
{
set { _email = value; }
get { return _email; }
}
}
}
2)1-N示例
using System;
using System.Collections;
using System.Text;
namespace BUL.Security
{
[DongLiORM.BusinessAtrribute("Groups",new string[]{"GroupID"},typeof(GroupItem))]
[DongLiORM.ChildFieldAtrribute("BelongUsers", //属性的名字
typeof(UserGroupItem) //该属性的业务实体类
)
] //1-N就在这里
public class GroupItem:DongLiORM.BusinessObject
{
public GroupItem()
{
}
public string GroupID
{
get
{
return _GroupID;
}
set
{
_GroupID = value;
}
}
private string _GroupID="";
public string GroupName
{
get
{
return _GroupName;
}
set
{
_GroupName = value;
}
}
private string _GroupName = "";
public UserGroupItem[] BelongUsers
{
get
{
return (UserGroupItem[])_BelongUsers.ToArray(typeof(UserGroupItem));
}
set
{
_BelongUsers.Clear();
_BelongUsers.AddRange(value);
}
}
ArrayList _BelongUsers = new ArrayList();
public void AddUsers(object[] UserGroups)
{
_BelongUsers.AddRange(UserGroups);
}
}
[DongLiORM.BusinessAtrribute("UserGroups",new string[]{"UserID","GroupID"},typeof(UserGroupItem))]
public class UserGroupItem:DongLiORM.BusinessObject
{
public UserGroupItem()
{ }
public string UserID
{
get
{
return _UserID;
}
set
{
_UserID = value;
}
}
private string _UserID = "";
public string GroupID
{
get
using System.Collections;
using System.Text;
namespace BUL.Security
{
[DongLiORM.BusinessAtrribute("Groups",new string[]{"GroupID"},typeof(GroupItem))]
[DongLiORM.ChildFieldAtrribute("BelongUsers", //属性的名字
typeof(UserGroupItem) //该属性的业务实体类
)
] //1-N就在这里
public class GroupItem:DongLiORM.BusinessObject
{
public GroupItem()
{
}
public string GroupID
{
get
{
return _GroupID;
}
set
{
_GroupID = value;
}
}
private string _GroupID="";
public string GroupName
{
get
{
return _GroupName;
}
set
{
_GroupName = value;
}
}
private string _GroupName = "";
public UserGroupItem[] BelongUsers
{
get
{
return (UserGroupItem[])_BelongUsers.ToArray(typeof(UserGroupItem));
}
set
{
_BelongUsers.Clear();
_BelongUsers.AddRange(value);
}
}
ArrayList _BelongUsers = new ArrayList();
public void AddUsers(object[] UserGroups)
{
_BelongUsers.AddRange(UserGroups);
}
}
[DongLiORM.BusinessAtrribute("UserGroups",new string[]{"UserID","GroupID"},typeof(UserGroupItem))]
public class UserGroupItem:DongLiORM.BusinessObject
{
public UserGroupItem()
{ }
public string UserID
{
get
{
return _UserID;
}
set
{
_UserID = value;
}
}
private string _UserID = "";
public string GroupID
{
get