Проблема обновления LINQ и хранимых процедур DBML - PullRequest
9 голосов
/ 24 января 2011

У меня серьезные проблемы с тем, что файлы DBML не обновляются, когда я изменяю свои хранимые процедуры.

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

Кто-нибудь еще имел эту проблему?Конечно, есть более подходящий способ обновления файлов DBML в Visual Studio 2008?

Заранее спасибо

Ответы [ 4 ]

14 голосов
/ 25 января 2011

Нет никакого способа, которым файл DBML обновляется, когда вы меняете SP.

У меня есть предложение избавиться от него.Это то, что мы следовали в наших проектах.

Всякий раз, когда у вас есть обновление в вашем SP, будь то входные или выходные параметры.Отредактируйте файл dbml как файл xml (вы можете использовать open как xml только в VS) и сохраните файл dbml.Это также автоматически обновит изменения в файле designer.cs.Таким образом, вам не нужно удалять SP из dbml и повторно добавлять его, чтобы получить обновления.Хотя это ручной процесс, но он действительно очень вам помогает.

Таким образом, вы можете даже изменить имена сущностей (в соответствии с вашими соглашениями об именах сущностей) для вывода, который вы получаете от SP, так как эти имена по умолчанию являютсятак же, как имя SP.

4 голосов
/ 30 декабря 2014

enter image description here еще одна вещь, которую я сделал, открыл обозреватель серверов из поля зрения. там он перечислит соединения БД. щелкните правой кнопкой мыши на том конкретном соединении, которое указывает на вашу базу данных, и обновите. Если вы добавили какие-либо новые хранимые процедуры или обновили их, они будут автоматически обновлены.

1 голос
/ 24 января 2011

1 имейте ввиду, что SQL и VS - это полностью 2 отдельных сервиса. он просто соединяется вместе, но это не значит, что он синхронизирует друг друга.

2 По моему мнению, DBML является своего рода MS-SQL только. Я использую для создания БД Фабрики полностью работающую базу на интерфейсах и возвращаю данные как DataTable или DataSet. Этот код можно использовать для всех стандартных БД.

0 голосов
/ 04 марта 2018

Также в Entity Framework 6 это проблема. Удалите измененные элементы в файле .edmx и «Обновить модель из базы данных».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...