手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网络编程>Asp.Net编程>列表

Object/DataSet Relational Mapping(对象/数据集关系映射)

来源:互联网 作者:west263.com 时间:2008-02-22
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

在.Net的开发领域,您和您的公司是不是在为以下问题所困扰

1.DataSet中DataRow只能以DataTable[0].Rows[0][“Name”]的方式获取数据

2.Sql配置的不动态,不清晰的Sql拼凑

3.使用JAVA 的ORM设计.Net,使用对象层,每一次修改都将影响反射的对象。

那么请继续看下面的文章

Object/DataSet Relational Mapping

(对象/数据集关系映射)

NickLee.ODRM模式可以很好的解决以上问题

1.DataSet中DataRow只能以DataTable[0].Rows[0][“Name”]的方式获取数据

方案:DataRow转化为序列化对象,但序列化对象只作为清晰的对象操作实体处理业务判断和数据

2.Sql配置的不动态,不清晰的Sql拼凑

方案:采用IBatisNet数据层构架,采用IBatisNet动态的SQL语法,但返回DataSet

3.使用JAVA 的ORM设计.Net,使用对象层,每一次修改都将影响反射的对象。

方案:清晰的O(对象层),无反射机制,避免每一次修改对对象层的改动。

下面做详细的说明

以下代码演示将包含在NickLee.Framework.2.0.1.2以上版本中,当然,我们只是提供一种思想,灵活的方案,仅代表TheFallAngel团队的思想。

必须引用的dll

IBatisNet(Version 1.5及其以后) with NickLee.Framework修改版本

NickLee.Web.UI(Version 2006.2.1447及其以后版本)

1. cXTM_User.cs

using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

/// <summary>

/// cXTM_User.序列化

/// </summary>

[Serializable]

public class cXTM_User

{

private int _dID;

private string _userName;

public cXTM_User()

{

//

// TODO: 在此处添加构造函数逻辑

//

}

public int DID

{

get

{

return _dID;

}

set

{

_dID = value;

}

}

public string UserName

{

get

{

return _userName;

}

set

{

_userName = value;

}

}

/// <summary>

/// Propertylist中数组请定义该类中属性,并确保名称唯一性

/// 以及与XTM_User中SelectXTM_UserByKey_Test中查询名称统一

/// </summary>

public string[] Propertylist

{

get

{

return new string[] { "UserName", "DID" };

}

}

}

2. XTM_User.xml

<?xml version='1.0' encoding='UTF-8' ?>

<sqlMap namespace='XTM_User' xmlns="http://ibatis.apache.org/mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<statements>

<select id='SelectXTM_UserByKey_Test' parameterClass='System.Collections.Hashtable'>

SELECT

Top 5

[DID],

[UserName],

[LoginName],

[PWD],

[LoginFlag],

[StopFlag],

[LoginTime],

[LASTUPDATE]

FROM [XTM_User]

</select>

</statements>

</sqlMap>

3. test.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="ODRM_test" %>

<%@ Register Assembly="NickLee.Web.UI" Namespace="NickLee.Web.UI" TagPrefix="NickLee" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

<title>Object/DataSet Relational Mapping(对象/数据集关系映射)</title>

</head>

<body>

<form id="form1" runat="server">

<div>

<NickLee:ExDataGrid ID="ExDataGrid1" runat="server" OnItemDataBound="ExDataGrid1_ItemDataBound">

</NickLee:ExDataGrid></div>

</form>

</body>

</html>

4. test.aspx.cs

using System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!