This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
developer:linq:context [2011/05/06 13:24] celutp |
developer:linq:context [2012/06/19 10:32] (current) celutp [Использование XmlMappingSource] |
||
---|---|---|---|
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, bool isLive)</code> | + | * [[api:dbconnector:mapping#GetDefaultMapFileContents|GetDefaultMapFileContents]] |
- | + | ||
- | <code c#>string GetMapFileContents(int site_id, bool isLive, string fileName)</code> | + | |
- | + | ||
- | <code c#>string GetDefaultMapFileContents(int site_id)</code> | + | |
- | + | ||
- | <code c#>string GetMapFileContents(int site_id, string fileName)</code> | + | |
- | + | ||
- | *//site_id// -- задает сайт в рамках текущей БД. Для заданного сайта определяется путь к папке //App_Data//. | + | |
- | *//isLive// -- определяет live- или stage- версию сайта использовать для формирования пути к папке //App_Data//. Если значение isLive не задано пользователем, то оно определяется вызовом метода //CheckIsLive// класса //DBConnector//. | + | |
- | *//fileName// -- имя файла. Файл ищется в папке //App_Data// заданного сайта. Найденный файл загружается и его содержимое возвращается в виде строки, при этом оно кэшируется до первого изменения с помощью метода [[api:cache#GetCachedFileContents|GetCachedFileContents]]. Если название файла не задано, то в папке //App_Data// ищется .map-файл основного контекстного класса. Основной контекстный класс может быть задан на [[developer:linq:db_mapping|уровне сайта]], либо иметь значение по умолчанию - //QPDataContext//. Таким образом, если всё по умолчанию, то ищется файл //QPDataContext.map//. | + | |
Пример: | Пример: | ||
Line 85: | Line 75: | ||
</code> | </code> | ||
- | Экземплярный метод //CheckIsLive// класса //DBConnector// проверяет значение параметра //isLive// в секции //appSettings// файла //web.config//. Если значение - false, считается, что код выполняется на stage-версии. В любом другом случае, включая отсутствие параметра //isLive//, считается, что код выполняется на live-версии. | ||
===== Cтатические свойства контекстного класса ===== | ===== Cтатические свойства контекстного класса ===== |