Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Filipenya_Katerina / Отчёт 6

.docx
Скачиваний:
6
Добавлен:
11.05.2015
Размер:
78.29 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

Учреждение Образования

«Белорусский Государственный Университет Информатики и Радиоэлектроники»

кафедра информатики

Инструменты и средства программирования

Отчёт по лабораторной работе №6

Выполнила: студентка гр. 152002

Филипеня Екатерина Дмитриевна

Проверил:

Тычко Дмитрий Николаевич

Минск 2013

Задание

Разработать в проекте слой доступа к данным (DAL) с использованием выбранной (одной из) технологии объектно-реляционного отображения:

– LINQ to SQL;

– Entity Framework;

– NHibernate.

Листинг

//------------------------------------------------------------------------------

// <auto-generated>

// Этот код был создан из шаблона.

//

// Изменения, вносимые в этот файл вручную, могут привести к непредвиденной работе приложения.

// Изменения, вносимые в этот файл вручную, будут перезаписаны при повторном создании кода.

// </auto-generated>

//------------------------------------------------------------------------------

using System;

using System.Data.Objects;

using System.Data.Objects.DataClasses;

using System.Data.EntityClient;

using System.ComponentModel;

using System.Xml.Serialization;

using System.Runtime.Serialization;

[assembly: EdmSchemaAttribute()]

#region Метаданные связи EDM

[assembly: EdmRelationshipAttribute("FilmCatalogueModel", "FK_Films_Directors", "Directors", System.Data.Metadata.Edm.RelationshipMultiplicity.One, typeof(DataAccessComponentsEF.Directors), "Films", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(DataAccessComponentsEF.Films), true)]

[assembly: EdmRelationshipAttribute("FilmCatalogueModel", "FK_Films_Duration", "Duration", System.Data.Metadata.Edm.RelationshipMultiplicity.One, typeof(DataAccessComponentsEF.Duration), "Films", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(DataAccessComponentsEF.Films), true)]

[assembly: EdmRelationshipAttribute("FilmCatalogueModel", "FK_Films_Genres", "Genres", System.Data.Metadata.Edm.RelationshipMultiplicity.One, typeof(DataAccessComponentsEF.Genres), "Films", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(DataAccessComponentsEF.Films), true)]

#endregion

namespace DataAccessComponentsEF

{

#region Контексты

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

public partial class FilmCatalogueEntities : ObjectContext

{

#region Конструкторы

/// <summary>

/// Инициализирует новый объект FilmCatalogueEntities, используя строку соединения из раздела "FilmCatalogueEntities" файла конфигурации приложения.

/// </summary>

public FilmCatalogueEntities() : base("name=FilmCatalogueEntities", "FilmCatalogueEntities")

{

this.ContextOptions.LazyLoadingEnabled = true;

OnContextCreated();

}

/// <summary>

/// Инициализация нового объекта FilmCatalogueEntities.

/// </summary>

public FilmCatalogueEntities(string connectionString) : base(connectionString, "FilmCatalogueEntities")

{

this.ContextOptions.LazyLoadingEnabled = true;

OnContextCreated();

}

/// <summary>

/// Инициализация нового объекта FilmCatalogueEntities.

/// </summary>

public FilmCatalogueEntities(EntityConnection connection) : base(connection, "FilmCatalogueEntities")

{

this.ContextOptions.LazyLoadingEnabled = true;

OnContextCreated();

}

#endregion

#region Разделяемые методы

partial void OnContextCreated();

#endregion

#region Свойства ObjectSet

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

public ObjectSet<Directors> Directors

{

get

{

if ((_Directors == null))

{

_Directors = base.CreateObjectSet<Directors>("Directors");

}

return _Directors;

}

}

private ObjectSet<Directors> _Directors;

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

public ObjectSet<Duration> Duration

{

get

{

if ((_Duration == null))

{

_Duration = base.CreateObjectSet<Duration>("Duration");

}

return _Duration;

}

}

private ObjectSet<Duration> _Duration;

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

public ObjectSet<Films> Films

{

get

{

if ((_Films == null))

{

_Films = base.CreateObjectSet<Films>("Films");

}

return _Films;

}

}

private ObjectSet<Films> _Films;

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

public ObjectSet<Genres> Genres

{

get

{

if ((_Genres == null))

{

_Genres = base.CreateObjectSet<Genres>("Genres");

}

return _Genres;

}

}

private ObjectSet<Genres> _Genres;

#endregion

#region Методы AddTo

/// <summary>

/// Устаревший метод для добавления новых объектов в набор EntitySet Directors. Взамен можно использовать метод .Add связанного свойства ObjectSet<T>.

/// </summary>

public void AddToDirectors(Directors directors)

{

base.AddObject("Directors", directors);

}

/// <summary>

/// Устаревший метод для добавления новых объектов в набор EntitySet Duration. Взамен можно использовать метод .Add связанного свойства ObjectSet<T>.

/// </summary>

public void AddToDuration(Duration duration)

{

base.AddObject("Duration", duration);

}

/// <summary>

/// Устаревший метод для добавления новых объектов в набор EntitySet Films. Взамен можно использовать метод .Add связанного свойства ObjectSet<T>.

/// </summary>

public void AddToFilms(Films films)

{

base.AddObject("Films", films);

}

/// <summary>

/// Устаревший метод для добавления новых объектов в набор EntitySet Genres. Взамен можно использовать метод .Add связанного свойства ObjectSet<T>.

/// </summary>

public void AddToGenres(Genres genres)

{

base.AddObject("Genres", genres);

}

#endregion

}

#endregion

#region Сущности

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

[EdmEntityTypeAttribute(NamespaceName="FilmCatalogueModel", Name="Directors")]

[Serializable()]

[DataContractAttribute(IsReference=true)]

public partial class Directors : EntityObject

{

#region Фабричный метод

/// <summary>

/// Создание нового объекта Directors.

/// </summary>

/// <param name="name">Исходное значение свойства Name.</param>

/// <param name="surname">Исходное значение свойства Surname.</param>

/// <param name="id">Исходное значение свойства Id.</param>

public static Directors CreateDirectors(global::System.String name, global::System.String surname, global::System.Guid id)

{

Directors directors = new Directors();

directors.Name = name;

directors.Surname = surname;

directors.Id = id;

return directors;

}

#endregion

#region Свойства-примитивы

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]

[DataMemberAttribute()]

public global::System.String Name

{

get

{

return _Name;

}

set

{

OnNameChanging(value);

ReportPropertyChanging("Name");

_Name = StructuralObject.SetValidValue(value, false);

ReportPropertyChanged("Name");

OnNameChanged();

}

}

private global::System.String _Name;

partial void OnNameChanging(global::System.String value);

partial void OnNameChanged();

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]

[DataMemberAttribute()]

public global::System.String Surname

{

get

{

return _Surname;

}

set

{

OnSurnameChanging(value);

ReportPropertyChanging("Surname");

_Surname = StructuralObject.SetValidValue(value, false);

ReportPropertyChanged("Surname");

OnSurnameChanged();

}

}

private global::System.String _Surname;

partial void OnSurnameChanging(global::System.String value);

partial void OnSurnameChanged();

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

[EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]

[DataMemberAttribute()]

public global::System.Guid Id

{

get

{

return _Id;

}

set

{

if (_Id != value)

{

OnIdChanging(value);

ReportPropertyChanging("Id");

_Id = StructuralObject.SetValidValue(value);

ReportPropertyChanged("Id");

OnIdChanged();

}

}

}

private global::System.Guid _Id;

partial void OnIdChanging(global::System.Guid value);

partial void OnIdChanged();

#endregion

#region Свойства навигации

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

[XmlIgnoreAttribute()]

[SoapIgnoreAttribute()]

[DataMemberAttribute()]

[EdmRelationshipNavigationPropertyAttribute("FilmCatalogueModel", "FK_Films_Directors", "Films")]

public EntityCollection<Films> Films

{

get

{

return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<Films>("FilmCatalogueModel.FK_Films_Directors", "Films");

}

set

{

if ((value != null))

{

((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<Films>("FilmCatalogueModel.FK_Films_Directors", "Films", value);

}

}

}

#endregion

}

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

[EdmEntityTypeAttribute(NamespaceName="FilmCatalogueModel", Name="Duration")]

[Serializable()]

[DataContractAttribute(IsReference=true)]

public partial class Duration : EntityObject

{

#region Фабричный метод

/// <summary>

/// Создание нового объекта Duration.

/// </summary>

/// <param name="id">Исходное значение свойства Id.</param>

public static Duration CreateDuration(global::System.Guid id)

{

Duration duration = new Duration();

duration.Id = id;

return duration;

}

#endregion

#region Свойства-примитивы

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]

[DataMemberAttribute()]

public Nullable<global::System.Int32> Min

{

get

{

return _Min;

}

set

{

OnMinChanging(value);

ReportPropertyChanging("Min");

_Min = StructuralObject.SetValidValue(value);

ReportPropertyChanged("Min");

OnMinChanged();

}

}

private Nullable<global::System.Int32> _Min;

partial void OnMinChanging(Nullable<global::System.Int32> value);

partial void OnMinChanged();

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]

[DataMemberAttribute()]

public Nullable<global::System.Int32> Sec

{

get

{

return _Sec;

}

set

{

OnSecChanging(value);

ReportPropertyChanging("Sec");

_Sec = StructuralObject.SetValidValue(value);

ReportPropertyChanged("Sec");

OnSecChanged();

}

}

private Nullable<global::System.Int32> _Sec;

partial void OnSecChanging(Nullable<global::System.Int32> value);

partial void OnSecChanged();

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]

[DataMemberAttribute()]

public Nullable<global::System.Int32> Hour

{

get

{

return _Hour;

}

set

{

OnHourChanging(value);

ReportPropertyChanging("Hour");

_Hour = StructuralObject.SetValidValue(value);

ReportPropertyChanged("Hour");

OnHourChanged();

}

}

private Nullable<global::System.Int32> _Hour;

partial void OnHourChanging(Nullable<global::System.Int32> value);

partial void OnHourChanged();

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

[EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]

[DataMemberAttribute()]

public global::System.Guid Id

{

get

{

return _Id;

}

set

{

if (_Id != value)

{

OnIdChanging(value);

ReportPropertyChanging("Id");

_Id = StructuralObject.SetValidValue(value);

ReportPropertyChanged("Id");

OnIdChanged();

}

}

}

private global::System.Guid _Id;

partial void OnIdChanging(global::System.Guid value);

partial void OnIdChanged();

#endregion

#region Свойства навигации

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

[XmlIgnoreAttribute()]

[SoapIgnoreAttribute()]

[DataMemberAttribute()]

[EdmRelationshipNavigationPropertyAttribute("FilmCatalogueModel", "FK_Films_Duration", "Films")]

public EntityCollection<Films> Films

{

get

{

return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<Films>("FilmCatalogueModel.FK_Films_Duration", "Films");

}

set

{

if ((value != null))

{

((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<Films>("FilmCatalogueModel.FK_Films_Duration", "Films", value);

}

}

}

#endregion

}

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

[EdmEntityTypeAttribute(NamespaceName="FilmCatalogueModel", Name="Films")]

[Serializable()]

[DataContractAttribute(IsReference=true)]

public partial class Films : EntityObject

{

#region Фабричный метод

/// <summary>

/// Создание нового объекта Films.

/// </summary>

/// <param name="name">Исходное значение свойства Name.</param>

/// <param name="directorId">Исходное значение свойства DirectorId.</param>

/// <param name="genreId">Исходное значение свойства GenreId.</param>

/// <param name="durationId">Исходное значение свойства DurationId.</param>

/// <param name="id">Исходное значение свойства Id.</param>

public static Films CreateFilms(global::System.String name, global::System.Guid directorId, global::System.Guid genreId, global::System.Guid durationId, global::System.Guid id)

{

Films films = new Films();

films.Name = name;

films.DirectorId = directorId;

films.GenreId = genreId;

films.DurationId = durationId;

films.Id = id;

return films;

}

#endregion

#region Свойства-примитивы

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]

[DataMemberAttribute()]

public global::System.String Name

{

get

{

return _Name;

}

set

{

OnNameChanging(value);

ReportPropertyChanging("Name");

_Name = StructuralObject.SetValidValue(value, false);

ReportPropertyChanged("Name");

OnNameChanged();

}

}

private global::System.String _Name;

partial void OnNameChanging(global::System.String value);

partial void OnNameChanged();

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]

[DataMemberAttribute()]

public Nullable<global::System.Int32> Rating

{

get

{

return _Rating;

}

set

{

OnRatingChanging(value);

ReportPropertyChanging("Rating");

_Rating = StructuralObject.SetValidValue(value);

ReportPropertyChanged("Rating");

OnRatingChanged();

}

}

private Nullable<global::System.Int32> _Rating;

partial void OnRatingChanging(Nullable<global::System.Int32> value);

partial void OnRatingChanged();

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]

[DataMemberAttribute()]

public global::System.Guid DirectorId

{

get

{

return _DirectorId;

}

set

{

OnDirectorIdChanging(value);

ReportPropertyChanging("DirectorId");

_DirectorId = StructuralObject.SetValidValue(value);

ReportPropertyChanged("DirectorId");

OnDirectorIdChanged();

}

}

private global::System.Guid _DirectorId;

partial void OnDirectorIdChanging(global::System.Guid value);

partial void OnDirectorIdChanged();

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]

[DataMemberAttribute()]

public global::System.Guid GenreId

{

get

{

return _GenreId;

}

set

{

OnGenreIdChanging(value);

ReportPropertyChanging("GenreId");

_GenreId = StructuralObject.SetValidValue(value);

ReportPropertyChanged("GenreId");

OnGenreIdChanged();

}

}

private global::System.Guid _GenreId;

partial void OnGenreIdChanging(global::System.Guid value);

partial void OnGenreIdChanged();

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]

[DataMemberAttribute()]

public global::System.Guid DurationId

{

get

{

return _DurationId;

}

set

{

OnDurationIdChanging(value);

ReportPropertyChanging("DurationId");

_DurationId = StructuralObject.SetValidValue(value);

ReportPropertyChanged("DurationId");

OnDurationIdChanged();

}

}

private global::System.Guid _DurationId;

partial void OnDurationIdChanging(global::System.Guid value);

partial void OnDurationIdChanged();

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

[EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]

[DataMemberAttribute()]

public global::System.Guid Id

{

get

{

return _Id;

}

set

{

if (_Id != value)

{

OnIdChanging(value);

ReportPropertyChanging("Id");

_Id = StructuralObject.SetValidValue(value);

ReportPropertyChanged("Id");

OnIdChanged();

}

}

}

private global::System.Guid _Id;

partial void OnIdChanging(global::System.Guid value);

partial void OnIdChanged();

#endregion

#region Свойства навигации

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

[XmlIgnoreAttribute()]

[SoapIgnoreAttribute()]

[DataMemberAttribute()]

[EdmRelationshipNavigationPropertyAttribute("FilmCatalogueModel", "FK_Films_Directors", "Directors")]

public Directors Directors

{

get

{

return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Directors>("FilmCatalogueModel.FK_Films_Directors", "Directors").Value;

}

set

{

((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Directors>("FilmCatalogueModel.FK_Films_Directors", "Directors").Value = value;

}

}

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

[BrowsableAttribute(false)]

[DataMemberAttribute()]

public EntityReference<Directors> DirectorsReference

{

get

{

return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Directors>("FilmCatalogueModel.FK_Films_Directors", "Directors");

}

set

{

if ((value != null))

{

((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference<Directors>("FilmCatalogueModel.FK_Films_Directors", "Directors", value);

}

}

}

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

[XmlIgnoreAttribute()]

[SoapIgnoreAttribute()]

[DataMemberAttribute()]

[EdmRelationshipNavigationPropertyAttribute("FilmCatalogueModel", "FK_Films_Duration", "Duration")]

public Duration Duration

{

get

{

return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Duration>("FilmCatalogueModel.FK_Films_Duration", "Duration").Value;

}

set

{

((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Duration>("FilmCatalogueModel.FK_Films_Duration", "Duration").Value = value;

}

}

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

[BrowsableAttribute(false)]

[DataMemberAttribute()]

public EntityReference<Duration> DurationReference

{

get

{

return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Duration>("FilmCatalogueModel.FK_Films_Duration", "Duration");

}

set

{

if ((value != null))

{

((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference<Duration>("FilmCatalogueModel.FK_Films_Duration", "Duration", value);

}

}

}

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

[XmlIgnoreAttribute()]

[SoapIgnoreAttribute()]

[DataMemberAttribute()]

[EdmRelationshipNavigationPropertyAttribute("FilmCatalogueModel", "FK_Films_Genres", "Genres")]

public Genres Genres

{

get

{

return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Genres>("FilmCatalogueModel.FK_Films_Genres", "Genres").Value;

}

set

{

((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Genres>("FilmCatalogueModel.FK_Films_Genres", "Genres").Value = value;

}

}

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

[BrowsableAttribute(false)]

[DataMemberAttribute()]

public EntityReference<Genres> GenresReference

{

get

{

return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Genres>("FilmCatalogueModel.FK_Films_Genres", "Genres");

}

set

{

if ((value != null))

{

((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference<Genres>("FilmCatalogueModel.FK_Films_Genres", "Genres", value);

}

}

}

#endregion

}

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

[EdmEntityTypeAttribute(NamespaceName="FilmCatalogueModel", Name="Genres")]

[Serializable()]

[DataContractAttribute(IsReference=true)]

public partial class Genres : EntityObject

{

#region Фабричный метод

/// <summary>

/// Создание нового объекта Genres.

/// </summary>

/// <param name="genre">Исходное значение свойства Genre.</param>

/// <param name="id">Исходное значение свойства Id.</param>

public static Genres CreateGenres(global::System.String genre, global::System.Guid id)

{

Genres genres = new Genres();

genres.Genre = genre;

genres.Id = id;

return genres;

}

#endregion

#region Свойства-примитивы

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]

[DataMemberAttribute()]

public global::System.String Genre

{

get

{

return _Genre;

}

set

{

OnGenreChanging(value);

ReportPropertyChanging("Genre");

_Genre = StructuralObject.SetValidValue(value, false);

ReportPropertyChanged("Genre");

OnGenreChanged();

}

}

private global::System.String _Genre;

partial void OnGenreChanging(global::System.String value);

partial void OnGenreChanged();

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

[EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]

[DataMemberAttribute()]

public global::System.Guid Id

{

get

{

return _Id;

}

set

{

if (_Id != value)

{

OnIdChanging(value);

ReportPropertyChanging("Id");

_Id = StructuralObject.SetValidValue(value);

ReportPropertyChanged("Id");

OnIdChanged();

}

}

}

private global::System.Guid _Id;

partial void OnIdChanging(global::System.Guid value);

partial void OnIdChanged();

#endregion

#region Свойства навигации

/// <summary>

/// Нет доступной документации по метаданным.

/// </summary>

[XmlIgnoreAttribute()]

[SoapIgnoreAttribute()]

[DataMemberAttribute()]

[EdmRelationshipNavigationPropertyAttribute("FilmCatalogueModel", "FK_Films_Genres", "Films")]

public EntityCollection<Films> Films

{

get

{

return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<Films>("FilmCatalogueModel.FK_Films_Genres", "Films");

}

set

{

if ((value != null))

{

((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<Films>("FilmCatalogueModel.FK_Films_Genres", "Films", value);

}

}

}

#endregion

}

#endregion

}

namespace DataAccessComponentsEF

{

public class DAC

{

protected delegate void Ghange(Guid id,FilmCatalogueEntities context);

protected delegate void ReadD(object par);

protected delegate void UseContext(FilmCatalogueEntities context);

protected void ChangeContext(Guid id,Ghange ch)

{

using (FilmCatalogueEntities context = new FilmCatalogueEntities())

{

ch(id,context);

context.SaveChanges();

}

}

protected object GetKey(string table,Guid id,FilmCatalogueEntities context)

{

EntityKey key = new EntityKey(table, "Id", id);

return context.GetObjectByKey(key);

}

protected void ReadData(string table,Guid id,ReadD r)

{

using (FilmCatalogueEntities context = new FilmCatalogueEntities())

{

EntityKey key = new EntityKey(table, "Id", id);

object par;

if (context.TryGetObjectByKey(key, out par))

{

r(par);

}

}

}

protected void CreateContext(UseContext r)

{

using (FilmCatalogueEntities context = new FilmCatalogueEntities())

{

r(context);

}

}

}

}

namespace DataAccessComponentsEF

{

interface IDataAccessComponents

{

void Create(Entity entity);

void Update(Guid id, Entity newentity);

void Delete(Guid id);

}

}

namespace DataAccessComponentsEF

{

public class DACDirector : DAC,IDataAccessComponents

{

private Director dir;

private List<Director> directors;

public void Create(Entity d)

{

dir = d as Director;

ChangeContext(dir._ID, AddDirector);

}

public Director Read(Guid id)

{

dir = new Director();

ReadData("FilmCatalogueEntities.Directors", id, ReadDir);

return dir;

}

public void Update(Guid id, Entity newd)

{

dir = newd as Director;

ChangeContext(id, UpDir);

}

public void Delete(Guid id)

{

ChangeContext(id, DelDir);

}

public IEnumerable<Director> ReadAll()

{

directors = new List<Director>();

CreateContext(ReadAllDir);

return directors;

}

protected void ReadAllDir(FilmCatalogueEntities context)

{

foreach (Directors d in context.Directors)

{

dir = new Director();

dir._Name = (string)d.Name;

dir._Surname = (string)d.Surname;

dir._ID = (Guid)d.Id;

directors.Add(dir);

}

}

private void ReadDir(object par)

{

Directors dirToSearch = (Directors)par;

if (dirToSearch != null)

{

dir._Name = (string)dirToSearch.Name;

dir._Surname = (string)dirToSearch.Surname;

dir._ID = (Guid)dirToSearch.Id;

}

}

private void AddDirector(Guid id, FilmCatalogueEntities context)

{

context.Directors.AddObject(new Directors() { Name = dir._Name, Surname = dir._Surname, Id = id });

}

private void UpDir(Guid id, FilmCatalogueEntities context)

{

Directors dirToUp = (Directors)GetKey("FilmCatalogueEntities.Directors", id, context);

if (dirToUp != null)

{

dirToUp.Name = dir._Name;

dirToUp.Surname = dir._Surname;

}

}

private void DelDir(Guid id, FilmCatalogueEntities context)

{

Directors dirToDel = (Directors)GetKey("FilmCatalogueEntities.Directors", id, context);

if (dirToDel != null)

{

context.DeleteObject(dirToDel);

}

}

}

}

namespace DataAccessComponentsEF

{

public class DACDuration :DAC

{

private TimeSpan dur;

private Guid durid;

public Guid Create(TimeSpan d)

{

dur = d;

durid = Guid.NewGuid();

ChangeContext(durid, AddDuration);

return durid;

}

public TimeSpan Read(Guid id)

{

dur = new TimeSpan();

durid = id;

ReadData("FilmCatalogueEntities.Duration", durid, ReadDur);

return dur;

}

public void Update(Guid id, TimeSpan d)

{

dur = d;

durid = id;

ChangeContext(id, UpDur);

}

public void Delete(Guid id)

{

durid = id;

ChangeContext(durid, DelDur);

}

public Guid Find(Guid fid)

{

durid = Guid.NewGuid();

ReadData("FilmCatalogueEntities.Films", fid, FindDur);

return durid;

}

private void ReadDur(object par)

{

Duration durToSearch = (Duration)par;

if (durToSearch != null)

{

var min = (int)durToSearch.Min;

var sec = (int)durToSearch.Sec;

var hour = (int)durToSearch.Hour;

dur = new TimeSpan(hour, min, sec);

}

}

private void FindDur(object par)

{

Films filmToSearch = (Films)par;

if (filmToSearch != null)

{

durid = (Guid)filmToSearch.DurationId;

}

}

private void AddDuration(Guid id, FilmCatalogueEntities context)

{

context.Duration.AddObject(new Duration() { Hour = dur.Hours, Min = dur.Minutes, Sec = dur.Seconds, Id = id });

}

private void UpDur(Guid id, FilmCatalogueEntities context)

{

Duration durToUp = (Duration)GetKey("FilmCatalogueEntities.Duration", id, context);

if (durToUp != null)

{

durToUp.Hour = dur.Hours;

durToUp.Min = dur.Minutes;

durToUp.Sec = dur.Seconds;

}

}

private void DelDur(Guid id, FilmCatalogueEntities context)

{

Duration durToDel = (Duration)GetKey("FilmCatalogueEntities.Duration", id, context);

if (durToDel != null)

{

context.DeleteObject(durToDel);

}

}

}

}

namespace DataAccessComponentsEF

{

public class DACFilm : DAC, IDataAccessComponents

{

private DACDuration dacdur = new DACDuration();

private Film film;

private List<Film> catalogue;

private Guid durid;

public void Create(Entity f)

{

film = f as Film;

durid = dacdur.Create(film._Duration);

Соседние файлы в папке Filipenya_Katerina