ПредишенСледващото

"" В тази статия използва сорс кода за пример

Клас DataContext дръжки връзката с базата данни. Той също така се занимава заявки, актуализации, вложки в база данни следи за самоличността, наклони, да ги обработва, осигурява целостта на сделката, а дори и създаването на база данни. Клас DataContext превежда заявки основни класове в SQL изрази, които се изпълняват на база с данни.

Извлича се от класа DataContext [Вие] DataContext осигурява достъп до цялата група от техники на базата данни като ExecuteQuery, ExecuteCommand и SubmitChanges. В допълнение към тези методи наследствено клас [ви] DataContext ще съдържа свойства на тип System.Data.Linq.Table за всяка таблица и изглед в базата данни, които ще бъдат използвани от LINQ към SQL, където всеки тип Т - това е основен клас картирани до специфична маса или изглед.

Например, да разгледаме този клас Northwind, който е генериран SQLMetal инструмент. Тя - клас [Вие] DataContext за база данни Northwind. По-долу е най-забележителната част от този клас:

Както можете да видите, този клас всъщност наследява от DataContext.

Лесно е да се забележи, че го обяви пет дизайнери. Имайте предвид, че конструкторът по подразбиране е частен (частни), тъй като модификатор за достъп неизвестна за него, така че да се създаде инстанция [Вие] DataContext без параметри няма да работят. Всеки от публичните конструктори [Вие] DataContext съответства на един от дизайнерите и DataContext клас конструктор е равностоен на DataContext инициализатор. В тялото на конструктора се нарича само частичен метод OnCreated. Това позволява на разработчика да прилагат частично метод OnCreated, която се търси, когато даден обект [Вие] DataContext.

В допълнение, този клас Northwind има свойство тип Клиентите на маса, където клиентите е основен тип клас. Този клас съществената Клиентът се показва на базата данни за клиентите маса Northwind.

В действителност, няма нужда да пишете код, който използва клас [Вие] DataContext. Възможно е да се работи със стандартен клас DataContext. Въпреки това, използването на клас [Вие] DataContext друго прави писмено код по-лесно. Например, ако използвате клас [Вие] DataContext, а след това всяка таблица е представена от един имот, който е на разположение директно чрез обекта [Вие] DataContext. Един пример е показано по-долу:

В предишния код, тъй като се свързвате с помощта на класа [Вие] DataContext наречена Northwind, е възможно да се прилага по отношение на маса на маса на клиенти като имот класа Клиентите [Вие] DataContext. Тук е резултат от този код:

LINQ към SQL, datacontext клас

Ако вместо това връзката е направена с използването на DataContext клас, би било необходимо да се използва метод GetTable DataContext обект, както е показано в примера по-долу:

Този код дава същия резултат.

Така че използването на класа [Вие] DataContext просто по-удобно, и тя трябва да бъде приета.

DataContext клас изпълнява IDisposable интерфейс

DataContext клас изпълнява интерфейса IDisposable, и следователно трябва да се тълкува правилно освобождава (disposabe) обект. Това означава, че ако се създаде нов клас, който съдържа в себе си DataContext клас или [Вие] DataContext, което означава отношението на "а" (е-а) между новата класа и DataContext на класа или [Вие] DataContext, а след това на новия клас също трябва да изпълнява интерфейса IDisposable. Въпросите, свързани с проектиране на класове за изпълнение правилно IDisposable интерфейс излизат извън рамките на тази статия, но има изобилие от онлайн ресурси по този въпрос.

Друго предимство на изпълнението на IDisposable интерфейс DataContext клас е, че сега можете да приложите на оператора да контролира обекта, използвайки DataContext или [Вие] DataContext.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!