Мой O / R Designer продолжает удалять файл designer.cs! - PullRequest
2 голосов
/ 08 июня 2009

У меня странная проблема: иногда, когда я изменяю объект Linq, используя конструктор O / R (обычно добавляя поле, которое я добавил в БД), когда я сохраняю проект, конструктор. CS файл удаляется!

К счастью, у меня есть источник контроля, к которому можно вернуться; Я восстановил файл и отменил изменения в файле csproj. Но это действительно раздражает, и, похоже, не имеет веских причин (тот факт, что мой проект содержит около 100 объектов, не является оправданием).

Кто-нибудь еще имел эту проблему? Есть идеи, что может быть причиной этого?

Редактировать - дополнительная информация - мой класс DataContext настроен с помощью пользовательского базового класса. Думаешь, это как-то связано с этим ...?

Ответы [ 5 ]

6 голосов
/ 08 июня 2009

Вы добавили частичный класс, чтобы добавить функциональность (и т. Д.) К сгенерированным классам? Если это так - как бы странно это ни звучало, положение любых операторов using в вашем файле частичного класса может фактически стать проблемой, которая нарушает генерацию кода. Попробуйте переместить их в пространство имен.

Нет, я не шучу.

В этом случае появляется сообщение об ошибке «Произошел сбой пользовательского инструмента« MSLinqToSQLGenerator ». Неопределенная ошибка». Изменение от:

using System;
namespace MyNamespace {
    partial class MyDataContext {}
}

до:

namespace MyNamespace {
    using System; 
    partial class MyDataContext {}
}

исправляет это. Чумовая ошибка.

4 голосов
/ 08 июня 2009

У меня похожая проблема с конструктором DataSet при работе с большим DataSet. Вам не нужно восстанавливать файл с вашей системой контроля версий: просто сохраните вашу работу в конструкторе, чтобы восстановить файл .designer.cs. Вы также можете щелкнуть правой кнопкой мыши файл и выбрать «Запустить пользовательский инструмент», что дает тот же эффект.

1 голос
/ 24 июня 2009

Пока рано говорить, потому что поведение нестабильно, но мне кажется, что если я оставлю файл designer.cs открытым в редакторе IDE, когда внесу изменения в файл .dbml, то он не ' не удаляется, когда я нажимаю «Сохранить».

Я пробовал это несколько раз, и, похоже, это работает ... Нет хорошего объяснения, почему это должно быть, но тогда проблема не в том, что можно подвергнуть логическому анализу, либо ...

Позже ...

Попробовав это несколько раз, я могу сказать, что это постоянно работает, поэтому я отмечаю это как ответ!

Спасибо всем за помощь!

0 голосов
/ 07 ноября 2009

Я только что столкнулся с той же проблемой, предложение Марка помогло мне справиться с ошибкой пользовательского инструмента. Но файл .designer.cs по-прежнему удалялся.

Я заметил, что если я изменю DBML и закрою DBML (он просит сохранить, и я выбираю да), он удалит файл designer.cs. Если я не закрою DBML, а вместо этого скажу, что он должен быть скомпонован прямо сейчас, он, похоже, заново создает файл .designer.cs и компилирует без проблем.

Затем я могу закрыть DBML, и все в порядке.

Очень странные взаимодействия. Коллега также столкнулся с проблемами, подобными тем, о которых Шауль сообщал выше.

0 голосов
/ 08 июня 2009

Пользовательский инструмент, который генерирует файл * .designer.cs, должен запускаться Visual Studio каждый раз, когда вы изменяете и сохраняете исходный файл конструктора O / R. Поэтому он может работать таким образом, что сначала удаляет старый файл * .designer.cs, а затем создает новый. Если он не создает новый, это проблема в пользовательском инструменте.

...