User Tools

Site Tools


developer:linq:context

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
developer:linq:context [2011/05/06 00:10]
celutp
developer:linq:context [2012/06/19 10:32] (current)
celutp [Использование XmlMappingSource]
Line 1: Line 1:
 ====== Использование контекстного класса ====== ====== Использование контекстного класса ======
  
-Под контекстным классом понимается класс, сгенерированный механизмом сборки в LINQ-to-SQL. Этот класс наследуется от DataContext. ​Его название ​может быть задано на [[developer:​linq:​db_mapping|уровне сайта или контента]],​ либо используется ​значение по умолчанию - QPDataContext.+Под контекстным классом понимается класс, сгенерированный механизмом сборки в LINQ-to-SQL. Этот класс наследуется от //DataContext//Имя класса может быть задано на [[developer:​linq:​db_mapping|уровне сайта или контента]], ​в случае ​отсутствия ​используется имя класса ​по умолчанию - //QPDataContext//.
  
 ===== Экземпляр по умолчанию ===== ===== Экземпляр по умолчанию =====
Line 63: Line 63:
   ​   ​
  
-===== Получение источника данных для отображения (MappingSource) ​=====+===== Использование XmlMappingSource ​=====
  
-Источник данных для отображения обычно получают с помощью статического метода ​**XmlMappingSource.FromXml**, в который передается строка с XML-содержимым отображения. Само XML-содержимое можно получить с помощью одного из экземплярных методов класса DBConnector:​ +Источник данных для отображения обычно получают с помощью статического метода ​[[http://​msdn.microsoft.com/​ru-ru/​library/​system.data.linq.mapping.xmlmappingsource.fromxml.aspx|XmlMappingSource.FromXml]], в который передается строка с XML-содержимым отображения. Само XML-содержимое можно получить с помощью одного из экземплярных методов класса DBConnector:​ 
- +  ​* ​[[api:dbconnector:mapping#​GetMapFileContents|GetMapFileContents]] 
-<code c#>​string GetDefaultMapFileContents(int site_id)</​code>​ +  * [[api:dbconnector:​mapping#GetDefaultMapFileContents|GetDefaultMapFileContents]]
- +
-<code c#>​string GetMapFileContents(int site_id, string fileName)</​code>​  +
- +
-В обоих случаях файл ищется в папке //​App_Data//​ заданного сайта. В первом случае название файла не задается,​ и в папке ищется .map-файл основного контекстного класса. Основной контекстный класс может быть задан на [[developer:linq:db_mapping|уровне сайта]], либо иметь значение по умолчанию - //​QPDataContext//​. Таким образом,​ если всё по умолчанию,​ то ищется файл //​QPDataContext.map//​. Содержимое файла кэшируется до первого изменения с помощью метода ​[[api:cache#GetCachedFileContents|GetCachedFileContents]].+
  
 Пример:​ Пример:​
Line 78: Line 74:
 XmlMappingSource map2 = XmlMappingSource.FromXml(Cnn.GetMapFileContents(Cnn.GetSiteId("​Sandbox Net"), "​EventsDataContext.map"​));​ XmlMappingSource map2 = XmlMappingSource.FromXml(Cnn.GetMapFileContents(Cnn.GetSiteId("​Sandbox Net"), "​EventsDataContext.map"​));​
 </​code>​ </​code>​
 +
  
 ===== Cтатические свойства контекстного класса ===== ===== Cтатические свойства контекстного класса =====
developer/linq/context.1304629818.txt.gz · Last modified: 2011/05/06 00:10 by celutp