Проектирование базы данных

Автор работы: Пользователь скрыл имя, 11 Сентября 2011 в 23:00, курсовая работа

Описание работы

Практическое задание на тему «Проектирование БД» подразумевает выполнение следующих задач:
определение объектов и их характеристик, которые необходимо хранить в БД (определение исходных данных для проектирования структуры БД);
разработка структуры БД;
разработка уровня доступа к данным;
создание пользовательского интерфейса для работы с БД.

Содержание работы

1. Формулировка задания 3

2. Описание БД 4

3. Описание интерфейса программы 7

3.1. Окно «Категории информационных материалов» 7

3.2. Окно «Информационные материалы» 8

3.3. Окно «Информационный материал» 9

3.4. Окно «Редактирование информационного материала» 10

3.5. Окно «Добавление информационного материала» 11

3.6. Окно «Фильтрация информационных материалов» 12

4. Перечень запросов LINQ to Entities, используемых в приложении 14

5. Листинг программы 16

App.xaml 16

CategoriesWindow.xaml 17

CategoriesWindow.xaml.cs 19

InfoMaterialAddEditWindow.xaml 22

InfoMaterialAddEditWindow.xaml.cs 23

InfoMaterialsFilterWindow.xaml 25

InfoMaterialsFilterWindow.xaml.cs 27

InfoMaterialsWindow.xaml 29

InfoMaterialsWindow.xaml.cs 30

InfoMaterialWindow.xaml 32

InfoMaterialWindow.xaml.cs 34

Convertor.cs 35

Filter.cs 36

Category.cs 38

CategoryRepository.cs 38

InfoMaterial.cs 40

InfoMaterialRepository.cs 40

InfoMaterialsDataManager.cs 42

Файлы: 1 файл

Проектирование базы данных.docx

— 625.74 Кб (Скачать файл)

        {

            get { return _sortDirection; }

            set { _sortDirection = value; }

        }

    }

}

Category.cs

using System.Collections.Generic;

using System.Drawing;

using System.Windows.Media.Imaging;

using ASDC.Model.Classes;

 

namespace ASDC.Model.InfoMaterials

{

    public partial class Category

    {

        public Category Parent { get; set; }

 

        public List<Category> Children { get; set; }

 

        public Image Bitmap { get; set; }

 

        private BitmapImage _bitmapSource;

        public BitmapImage BitmapSource

        {

            get { return _bitmapSource; }

            set

            {

                _bitmapSource = value;

                Image = Convertor.BitmapSourceToBytes(_bitmapSource);

            }

        }

    }

}

CategoryRepository.cs

using System.Collections.Generic;

using System.Linq;

using ASDC.Model.Classes;

 

namespace ASDC.Model.InfoMaterials

{

    public class CategoryRepository

    {

        private ASDCEntities _entities;

 

        /// <summary>

        /// Конструктор класса

        /// </summary>

        /// <param name="entities">Ссылка на объект-хранилище (коннекшен, connection), включающее все сущности (entities) промапленной (mapping) БД.</param>

        public CategoryRepository(ASDCEntities entities)

        {

            _entities = entities;

        }

 

        /// <summary>

        /// Функция выбирает категорию по заданному идентификатору (id)

        /// </summary>

        /// <param name="categoryId">Идентификатор категории, которую нужно выбрать</param>

        /// <returns></returns>

        public Category GetCategory(long categoryId)

        {

            Category category = _entities.Categories.First(c => c.ID_Category == categoryId);

            category.BitmapSource = Convertor.ByteToBitmapSource(category.Image);

            return category;

        }

 

        /// <summary>

        /// Функция выбирает два уровня категорий

        /// </summary>

        /// <returns></returns>

        public List<Category> GetCategories()

        {

            var categories = GetSubCategories(0);

 

            foreach (var category in categories)

            {

                category.Children = GetSubCategories(category.ID_Category);

            }

 

            return categories.ToList();

        }

 

        /// <summary>

        /// Функция рекурсивно выбирает все категории

        /// </summary>

        /// <param name="categoryId">Категория, подкатегории которой нужно выбрать</param>

        /// <returns></returns>

        public List<Category> GetCategories(long categoryId)

        {

            var categories = GetSubCategories(categoryId);

            if (categories != null)

            {

                foreach (var category in categories)

                {

                    category.Children = GetCategories(category.ID_Category);

                }

            }

            return categories;

        }

 

        /// <summary>

        /// Функция выбирает подкатегории заданной категории

        /// </summary>

        /// <param name="categoryId">Категория, подкатегории которой нужно выбрать</param>

        /// <returns></returns>

        public List<Category> GetSubCategories(long categoryId)

        {

            var categories = (from c in _entities.Categories

                              where categoryId == 0 ? (c.ParentCategory == categoryId || c.ParentCategory == null) : (c.ParentCategory == categoryId)

                              select c).ToList();

 

            foreach (var category in categories)

            {

                category.BitmapSource = Convertor.ByteToBitmapSource(category.Image);

            }

            return categories;

        }

 

        /// <summary>

        /// Функция добавления новой категории

        /// </summary>

        /// <param name="category">Новая категория в виде класса категории</param>

        /// <returns></returns>

        public Category InsertCategory(Category  category)

        {

            _entities.AddToCategories(category);

            return category;

        }

 

        public void DeleteCategory(Category category)

Информация о работе Проектирование базы данных