数据实体层介绍
?? 數(shù)據(jù)實(shí)體層用于封裝實(shí)體類數(shù)據(jù)結(jié)構(gòu),一般用于映射數(shù)據(jù)庫的數(shù)據(jù)表或視圖,用以描述業(yè)務(wù)中客觀存在的對象。
????? 一般來說設(shè)計(jì)數(shù)據(jù)實(shí)體層時(shí),大家一般有以下選擇。
????? 1、DataSet
????? 2、XML
????? 3、使用XML作為數(shù)據(jù)結(jié)構(gòu)來源,來生成的統(tǒng)一業(yè)務(wù)實(shí)體類。
????? 4、可序列化的業(yè)務(wù)實(shí)體類。
????? 5、可序列化的,帶一般CRUD操作的業(yè)務(wù)實(shí)體類。
????? 前二種太簡單,這里不一一敘述了。
????? 第三種就是寫一個(gè)復(fù)雜的統(tǒng)一的業(yè)務(wù)實(shí)體類,這個(gè)類主要是讀取指定的XML文件,生成相應(yīng)的業(yè)務(wù)實(shí)體類。利用常用的數(shù)據(jù)庫
工具,將現(xiàn)有的數(shù)據(jù)庫結(jié)構(gòu)導(dǎo)出為XML文件,并放入指定的位置。程序則讀取XML,并生成相應(yīng)的DataSet用于操作。優(yōu)勢在于,程序
與數(shù)據(jù)庫完全分離,只與相應(yīng)的XML文件相關(guān),因此獨(dú)立性強(qiáng)。不利的一面則是此類要考慮的事情實(shí)在是太多,要想完全實(shí)現(xiàn)可復(fù)用
的組件則需花費(fèi)大量的時(shí)間。而且,對配置管理要求很嚴(yán)格,主要是XML和數(shù)據(jù)庫的一致性上。如果更新了數(shù)據(jù)庫而忘了更新XML,
呵呵,后果可想而知。還有就是系統(tǒng)開銷變大,對性能有一定的影響。(網(wǎng)上有些例子,大家可以參考)
????? 第四種實(shí)現(xiàn)比較容易,但是對于一般項(xiàng)目而言工作量大,不過使用Spdevelop可以輕松的幫您在1秒內(nèi)完成本項(xiàng)工作,減少工
作量。生成的實(shí)體如下:
using System;
using System.Data.SqlClient;
namespace Spdevelop.Model
{
????
??? /// <summary>?????
??? /// 角色
??? /// </summary>
??? public class Role
??? {?
??????? /// <summary>
??????? ///?
??????? /// </summary>
??????? public Role()
??????? {
??????? }
??????? /// <summary>?????
??????? ///?
??????? /// </summary>
??????? public Role(Int32 rid)
??????? {
??????????? this.rid = rid;
????????
??????? }
??????? /// <summary>?????
??????? ///?
??????? /// </summary>????????
??????? public Role(SqlDataReader dr)
??????? {
??????????? this.rid = Convert.ToInt32(dr["rid"]);
??????????? this.name = Convert.ToString(dr["name"]);
????????????
??????? }
????????
????????
????????
??????? #region Rid
??????? private Int32 rid;
??????? /// <summary>?????
??????? /// 角色編號
??????? /// AutoInc
??????? /// PK
??????? /// </summary>
??????? public Int32 Rid
??????? {
??????????? get{ return rid; }
??????????? set{ rid= value; }
??????? }
??????? #endregion
????????
??????? #region Name
??????? private System.String name;
??????? /// <summary>?????
??????? /// 角色名稱
??????? /// </summary>
??????? public System.String Name
??????? {
??????????? get{ return name; }
??????????? set{ name= value; }
??????? }
??????? #endregion
????????
??? }
}
???? 查看詳細(xì)模板 www.spdevelop.com
?
???? 第五種則是在第四種上加入了基本的CRUD操作。
轉(zhuǎn)載于:https://www.cnblogs.com/spdevelop/archive/2006/07/19/454948.html
總結(jié)
- 上一篇: 新手必备: win10 系统下 VSCo
- 下一篇: 商用工程开发中的一些习惯