"" В тази статия използва сорс кода за пример
Клас DataContext дръжки връзката с базата данни. Той също така се занимава заявки, актуализации, вложки в база данни следи за самоличността, наклони, да ги обработва, осигурява целостта на сделката, а дори и създаването на база данни. Клас DataContext превежда заявки основни класове в SQL изрази, които се изпълняват на база с данни.
Извлича се от класа DataContext [Вие] DataContext осигурява достъп до цялата група от техники на базата данни като ExecuteQuery, ExecuteCommand и SubmitChanges. В допълнение към тези методи наследствено клас [ви] DataContext ще съдържа свойства на тип System.Data.Linq.Table
Например, да разгледаме този клас Northwind, който е генериран SQLMetal инструмент. Тя - клас [Вие] DataContext за база данни Northwind. По-долу е най-забележителната част от този клас:
Както можете да видите, този клас всъщност наследява от DataContext.
Лесно е да се забележи, че го обяви пет дизайнери. Имайте предвид, че конструкторът по подразбиране е частен (частни), тъй като модификатор за достъп неизвестна за него, така че да се създаде инстанция [Вие] DataContext без параметри няма да работят. Всеки от публичните конструктори [Вие] DataContext съответства на един от дизайнерите и DataContext клас конструктор е равностоен на DataContext инициализатор. В тялото на конструктора се нарича само частичен метод OnCreated. Това позволява на разработчика да прилагат частично метод OnCreated, която се търси, когато даден обект [Вие] DataContext.
В допълнение, този клас Northwind има свойство тип Клиентите на маса
В действителност, няма нужда да пишете код, който използва клас [Вие] DataContext. Възможно е да се работи със стандартен клас DataContext. Въпреки това, използването на клас [Вие] DataContext друго прави писмено код по-лесно. Например, ако използвате клас [Вие] DataContext, а след това всяка таблица е представена от един имот, който е на разположение директно чрез обекта [Вие] DataContext. Един пример е показано по-долу:
В предишния код, тъй като се свързвате с помощта на класа [Вие] DataContext наречена Northwind, е възможно да се прилага по отношение на маса на маса на клиенти
Ако вместо това връзката е направена с използването на DataContext клас, би било необходимо да се използва метод GetTable
Този код дава същия резултат.
Така че използването на класа [Вие] DataContext просто по-удобно, и тя трябва да бъде приета.
DataContext клас изпълнява IDisposable интерфейс
DataContext клас изпълнява интерфейса IDisposable, и следователно трябва да се тълкува правилно освобождава (disposabe) обект. Това означава, че ако се създаде нов клас, който съдържа в себе си DataContext клас или [Вие] DataContext, което означава отношението на "а" (е-а) между новата класа и DataContext на класа или [Вие] DataContext, а след това на новия клас също трябва да изпълнява интерфейса IDisposable. Въпросите, свързани с проектиране на класове за изпълнение правилно IDisposable интерфейс излизат извън рамките на тази статия, но има изобилие от онлайн ресурси по този въпрос.
Друго предимство на изпълнението на IDisposable интерфейс DataContext клас е, че сега можете да приложите на оператора да контролира обекта, използвайки DataContext или [Вие] DataContext.
Свързани статии