Мне нужно регулярно обновлять классы Linq To SQL; Да, мне стыдно за то, что я недостаточно тщательно продумал мою схему данных, плохой разработчик, до тошноты. Я обнаружил, что SQLMetal почти добился цели, но, возможно, мне чего-то не хватает в списке параметров.
Когда я запускаю свой пакетный файл с новой блестящей кнопки на панели инструментов, используя внешние инструменты Visual Studio,
@echo off
del c:\path\to\LinqToSql.dbml
SQLMetal.exe /server:SERVER\SQLSERVER /database:db /timeout:0 /dbml:"c:\path\to\LinqToSql.dbml" /namespace:DAL /context:DataDataContext /entitybase:System.Data.Linq.DataContext /language:csharp /pluralize
SqlMetal создает файл .dbml, ура. Однако Вопрос 1 Могу ли я программно включить файл .dbml в свой проект?
Вопрос 2
Почему, когда я компилирую после того, как вручную включаю только что созданный файл .dbml, у каждого из моих классов возникают следующие ошибки сборки, связанные с номером строки их конструкторов без параметров? например 30 таблиц = 30 ошибок сборки.
'System.Data.Linq.DataContext' does not contain a constructor that takes 0 arguments
Фактический
Я заметил, что мой DataDataContext
сгенерированный класс без конструктора без параметров, поэтому я добавил частичный класс для дополнения, но он все еще не работает.
public partial class DataDataContext
{
public DataDataContext() :
base(global::DAL.Properties.Settings.Default.MyConnectionString, mappingSource)
{
OnCreated();
}
}
Я думал, что этот процесс обновления можно будет автоматизировать, но ручное добавление сгенерированного файла .dbml, который вызывает эти ошибки конструктора, не работает для меня.