• CSLA.Net 3.0.5 项目管理示例 只读集合基类(ResourceList.cs,ResourceInfo.cs)


    //3.0一?致?
    using System;
    using System.Data;
    using System.Data.SqlClient;
    using Csla;
    using Csla.Data;
    
    namespace ProjectTracker.Library
    {
        /// <summary>
        /// 集?成?自?ReadOnlyListBase基?类?,?提?供?了?两?个?泛?型?参?数?,?一?个?是?业?务?对?象?本?身?,?另?一?个?是?子?对?象?类?型?
        /// 提?供?对?只?读?列?表?显?示?的?支?持?(?)?
        /// </summary>
        [Serializable()]
        public class ResourceList : ReadOnlyListBase<ResourceList, ResourceInfo>
        {
            #region Factory Methods
            
            /// <summary>
            /// CriTeria参?数?由?于?没?有?参?数?要?传?递?,?所?以?默?认?构?造?,?保?留?Fetch的?方?法?签?名?不?变?,?
            /// </summary>
            /// <returns></returns>
            public static ResourceList GetResourceList()
            {
                return DataPortal.Fetch<ResourceList>(new Criteria());
            }
    
            /// <summary>
            /// 私?有?构?造?器?
            /// </summary>
            private ResourceList()
            { /* require use of factory methods */ }
    
            #endregion
    
            #region Data Access
    
            /// <summary>
            /// 标?准?类?
            /// </summary>
            [Serializable()]
            private class Criteria
            { /* no criteria - retrieve all resources */ }
    
            private void DataPortal_Fetch(Criteria criteria)
            {
                this.RaiseListChangedEvents = false;
                using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection))
                {
                    cn.Open();
                    using (SqlCommand cm = cn.CreateCommand())
                    {
                        cm.CommandType = CommandType.StoredProcedure;
                        cm.CommandText = "getResources";
    
                        using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
                        {
                            IsReadOnly = false;
                            while (dr.Read())
                            {
                                //调?用?子?类?的?构?造?并?添?加?到?此?业?务?对?象?中?来?
                                ResourceInfo info = new ResourceInfo(dr);
                                this.Add(info);
                            }
                            IsReadOnly = true;
                        }
                    }
                }
                this.RaiseListChangedEvents = true;
            }
    
            #endregion
    
        }
    }
    //3.0一?致?
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data.SqlClient;
    using Csla;
    using Csla.Data;
    
    namespace ProjectTracker.Library
    {
        /// <summary>
        /// 集?成?基?类?,?需?要?一?个?业?务?对?象?类?型?泛?型?参?数?(?)?
        /// </summary>
        [Serializable()]
        public class ResourceInfo : ReadOnlyBase<ResourceInfo>
        {
            #region Business Methods
    
            //-----------------------------
            private int _id;
            private string _name;
    
            public int Id
            {
                get { return _id; }
            }
    
            public string Name
            {
                get { return _name; }
            }
            //-----------------------------
            /// <summary>
            /// 为?Object提?供?比?较?参?数?的?重?载?
            /// </summary>
            /// <returns></returns>
            protected override object GetIdValue()
            {
                return _id;
            }
    
            /// <summary>
            /// 从?在?Tostring,?返?回?名?称?
            /// </summary>
            /// <returns></returns>
            public override string ToString()
            {
                return _name;
            }
    
            #endregion
    
            #region Constructors 构?造?器?
    
            /// <summary>
            /// 默?认?构?造?器?
            /// </summary>
            private ResourceInfo()
            { /* require use of factory methods */ }
            
            /// <summary>
            /// 内?联?调?用?,?构?造?初?始?化?私?有?成?员?
            /// </summary>
            /// <param name="dr"></param>
            internal ResourceInfo(SafeDataReader dr)
            {
                _id = dr.GetInt32("Id");
                _name = string.Format("{0}, {1}", dr.GetString("LastName"), dr.GetString("FirstName"));
            }
    
            #endregion
        }
    }

    代码下载:CSLA3.0中文学习演示程序1.2.rar

    冯瑞涛
  • 相关阅读:
    alpha冲刺3
    alpha冲刺2
    alpha冲刺1
    软工第七次作业
    软工第八次作业
    软工第六次作业
    软工第五次作业
    软工第四次作业
    Alpha冲刺一 (2/10)
    Alpha冲刺一(1/10)
  • 原文地址:https://www.cnblogs.com/finehappy/p/1578365.html
Copyright © 2020-2023  润新知