Работа с контентами упрощается за счет того, что:
C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\sqlmetal.exe
. Если на целевом компьютере не установлена Visual Studio, утилиту можно просто скачать.<system.web> <compilation> <assemblies> ... <add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> </assemblies> ... </compilation> </system.web> ... <system.codedom> <compilers> <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <providerOption name="CompilerVersion" value="v3.5" /> <providerOption name="WarnAsError" value="false" /> </compiler> </compilers> </system.codedom>
Сборка контентов QP7 в классы LINQ-to-SQL может осуществляться в двух режимах:
Переключение режимов осуществляется опцией Использовать прямое отображение из базы данных (Use direct mapping from database) на уровне сайта. Cама сборка запускается кнопкой Собрать Контенты (Assemble Contents) на странице Контенты (Contents). При этом в папке App_Code происходит полная перегенерация всех LINQ-классов текущего сайта. Следует иметь в виду, что данный процесс с большой долей вероятности приведет к перегрузке домена приложения, поэтому его стоит с осторожностью применять на продукционных сайтах.
Кроме этого, на уровне сайта существует опция Импортировать файл отображения в базу данных(Import mapping file to database), которая позволяет импортировать существующий пользовательский файл отображения в базу данных для последующей настройки через бэкенд QP7 и генерации файла отображения в автоматическом режиме. При успешном выполнении импорта данная опция автоматически сбрасывается, а опция Использовать прямое отображение из базы данных (Use direct mapping from database) автоматически устанавливается.
Опция Импортировать файл отображения в базу данных(Import mapping file to database) также может быть полезна для первичного заполнения настроек LINQ-to-SQL для существующего сайта с большим количеством контентов. Для этого сначала генерируется пользовательский файл отображения по умолчанию (при отключенной опции Использовать прямое отображение из базы данных (Use direct mapping from database), а затем проводится его импорт.
Генерация LINQ-to-SQL классов и вспомогательных файлов осуществляется в папки App_Data и App_Code сайта. Расположение этих папок вычисляется из расположения папки bin, которая настраивается в свойствах сайта. При этом предполагается, что папки App_Data и App_Code находятся на том же уровне в дереве папок, что и bin.
NewsArticle art = new NewsArticle(); art.Title = "some title"; art.Text = "some text"; LinqHelper.Context.NewsArticles.InsertOnSubmit(art); LinqHelper.Context.SubmitChanges();
Discussion