четверг, 25 октября 2012 г.

3."Пейджинг" в ASP.NET из БД Oracle (Подготовка слоя доступа к данным ч.2)


Код класса TestSection, который наследуем от класса ConfigurationSection и используем для упаковки и хранения настроек web.config. В основном, кажется, тут все понятно.

using System.Configuration;
using System.Web.Configuration;

namespace Paging
{
    /// <summary>
    /// Считывание настроек Web.config
    /// </summary>
    public class TestSection:ConfigurationSection
    {
        public readonly static TestSection Section =
            (TestSection)WebConfigurationManager.GetSection("TestSection");


        [ConfigurationProperty("jobs")]
        public JobsElement Jobs
        {
            get { return (JobsElement)base["jobs"]; }
        }

        [ConfigurationProperty("Employees")]
        public EmployeesElement Employees
        {
            get { return (EmployeesElement)base["Employees"]; }
        }
    }

    public class JobsElement : ConfigurationElement
    {
 
        [ConfigurationProperty("providerType", DefaultValue = "OracleJobProvider")]
        public string ProviderType
        {
            get { return (string)base["providerType"]; }
            set { base["providerType"] = value; }
        }
    }

    public class EmployeesElement : ConfigurationElement
    {
 
        [ConfigurationProperty("providerType", DefaultValue = "OracleEmployeeProvider")]
        public string ProviderType
        {
            get { return (string)base["providerType"]; }
            set { base["providerType"] = value; }
        }
    }
}

В этом классе мы прописываем два провайдера данных OracleJobProvider и OracleEmployeeProvider. При создании instance  в классах JobsProvider и EmployeesProvider необходимый провайдер данных будет извлекаться из TestSection. Таким образом BLL слой нашего приложения передает вызовы DAL слою.

Классы - обертки для таблиц БД:

Класс - обертка для таблицы jobs:


using System;

namespace Paging
{
    /// <summary>
    /// Класс контейнер служит для упаковки полученных значений
    /// </summary>
    public class JobDetails
    {
        public JobDetails()
        {
            JobNm = String.Empty;
        }

        public JobDetails(String jobNm)
        {
            JobNm = jobNm;
        }

        public JobDetails(Int32 jobId, String jobNm)
        {
            JobId = jobId;
            JobNm = jobNm;
        }

        public int JobId { get; set; }
        public string JobNm { get; set; }
    }
}



Класс - обертка для таблицы Employees:


using System;

namespace Paging
{
   /// <summary>
    /// Класс контейнер служит для упаковки полученных значений
    /// </summary>
    public class EmployeeDetails
    {
        public EmployeeDetails()
        {

        }

        public EmployeeDetails(Int32 empId,Int32 jobId, String firstName, String lastName,Double salary)
        {
            EmpId = empId;
            JobId = jobId;
            FirstName = firstName;
            LastName = lastName;
            Salary = salary;
        }

        public int EmpId { get; set; }

        public int JobId { get; set; }

        public string FirstName { get; set; }

        public string LastName { get; set; }

        public double Salary { get; set; }
    }
}

Свойства, созданные в классах, полностью соответствуют таблицам которые мы создавали в БД в первой части. В следующей части рассмотрим сами классы - провайдеры. Именно в них реализован механизм подключения к БД и извлечения данных.


Комментариев нет:

Отправить комментарий