readonlycollection.cs

来自「C# 版本的一个三层商业架构」· CS 代码 · 共 81 行

CS
81
字号
using System;
using System.Data;

namespace CSLA.Templates
{
  [Serializable()]
  public class ReadOnlyCollection : CSLA.ReadOnlyCollectionBase
  {
    #region Business Properties and Methods

    public ReadOnlyObject this [int index]
    {
      get
      {
        return (ReadOnlyObject)List[index];
      }
    }

    #endregion

    #region Contains

    public bool Contains(ReadOnlyObject item) 
    {
      foreach(ReadOnlyObject child in List)
        if(child.Equals(item))
          return true;

      return false;

    }

    #endregion

    #region Static Methods

    public static ReadOnlyCollection GetCollection() 
    {
      return (ReadOnlyCollection)DataPortal.Fetch(new Criteria());
    }

    #endregion

    #region Constructors

    private ReadOnlyCollection()
    {
      // Prevent direct creation
    }

    #endregion

    #region Criteria

    [Serializable()]
      public class Criteria
    {}

    #endregion

    #region Data Access

    protected override void DataPortal_Fetch(object criteria)
    {
      locked = false;

      Criteria crit = (Criteria)criteria;

      // Retrieve all child data into a data reader
      // then loop through and create each child object
      IDataReader dr;
      while(dr.Read())
        List.Add(ReadOnlyObject.GetReadOnlyObject(dr));

      locked = true;
    }

    #endregion

  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?