Object/DataSet Relational Mapping(对象/数据集…

2008-02-22 09:40:18来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

在.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;

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:ASP.NET组件DataGrid的分页实用方法

下一篇:Access数据库在asp.net程序中相对路径的解决方法