Я использую SqlMetal для моего класса DataContext.dbml для моего приложения ASP.net с использованием LinqToSql. Когда я изначально создавал файл DataContext.dbml, Visual Studio использовал это для создания связанного файла DataContext.designer.cs. Этот файл конструктора содержит класс DataContext в C#, который используется во всем приложении (и получен из XML в файле dbml) и имеет важное значение для преодоления разрыва между выходом SqlMetal и использованием DataContext с LinqToSql.Autogeneration файла конструктора DataContext при использовании SqlMetal и Visual Studio
Однако, когда я вношу изменения в базу данных и воссоздаю файл dbml, файл конструктора никогда не восстанавливается на моем веб-сайте. Вместо этого сохраняется старый файл конструктора (и поэтому ни одно из изменений в DBML-файле не доступно через класс DataContext LinqToSql).
Единственный процесс, который я был в состоянии использовать до сих пор, чтобы восстановить файл дизайнер
- Перейти к Windows Explorer, и удалить как DBML и designer.cs файлы
- Перейти к Visual Studio и ударил Обновите в обозревателе решений. Файлы dbml и designer.cs теперь исчезают из проекта.
- Восстановить файл dbml с помощью SqlMetal
- Перейдите в Visual Studio и нажмите Обновить в Обозревателе решений. Теперь файл designer.cs воссоздается.
Похоже, что Visual Studio будет генерировать файл designer.cs только при обнаружении нового файла dbml, который еще не имеет файла designer.cs. Этот процесс довольно непрактичен, поскольку он включает в себя несколько ручных шагов и беспорядок с контролем источника.
Кто-нибудь знает, как я могу получить файл designer.cs автоматически, без необходимости следовать процедуре удаления/обновления/регенерации/удаления вручную, описанной выше?
спасибо Дуги, это то, что я искал. Он продолжал создавать дублирующий дизайнерский файл, и это раздражало меня до конца. Это решило мою проблему. – AceCorban 2014-01-23 21:02:15