Удалить схему из linq datacontexts (dbml) - PullRequest
2 голосов
/ 23 апреля 2010

Когда я добавляю хранимые процедуры к текстовому тексту linq, по умолчанию Visual Studio добавляет префикс хранимой процедуры к схеме sql, в которой она находится. Есть ли способ остановить это? В нашей среде хранимые процедуры могут быть перемещены в другие схемы с течением времени, и мы будем использовать схему по умолчанию на основе пользователя sql, используемого для подключения. Нужно ли делать это вручную или можно как-то отключить префиксы схемы?

1 Ответ

1 голос
/ 19 сентября 2011

Кажется, что нет никаких средств для удаления схемы из отображенных хранимых процедур LINQ-to-SQL с помощью конструктора. Все процессы сопоставлены, включая их имя схемы, что (чтобы быть справедливым), вероятно, хорошо для большинства приложений. И, как и в большинстве случаев LINQ-to-SQL, измените базу данных на свой страх и риск. Слишком много изменений в базе данных потребовало обновления и перестройки базы данных LINQ-to-SQL.

Копая глубже, имя схемы сохраняется в файле XML dbml основы, а затем включается в сгенерированный файл designer.cs, который содержит вызываемые функции / методы.

// dbml
<Function Name="dbo.MyProc" Method="MyProc">

// designer.cs
[global::System.Data.Linq.Mapping.FunctionAttribute(Name="dbo.MyProc")]
public int MyProc()

Если вы вручную отредактируете XML-файл dbml, чтобы удалить схему и сохранить ее в Visual Studio, код будет восстановлен следующим образом:

// changed dbml - removed the dbo schema
<Function Name="MyProc" Method="MyProc">

// the resultant generated code in designer.cs
[global::System.Data.Linq.Mapping.FunctionAttribute()]
public int MyProc()

Который работал для моей учетной записи, входя в систему с использованием dbo в качестве схемы по умолчанию. Я оставлю тестирование на ваше усмотрение.

Это может быть работоспособным решением - визуальный дизайнер все еще работает так же, можно добавлять другие элементы и т. Д., Не нарушая функцию без схемы, и сама функция не вызывает жалобу дизайнера. Желаем удачи!

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