При создании UserDefinedType в коде C # для интеграции с SQLCLR требуется, чтобы вы префикс класса или структуры с SqlUserDefinedType, например, здесь:
[SqlUserDefinedType(
Name = "g.Options",
// ...
)]
public struct Options : INullable {
// ...
}
Обратите внимание, что в «Имя»"Параметр, я пытаюсь установить схему в дополнение к имени объекта.Но когда я генерирую сценарий на этапе публикации проекта базы данных Visual Studio, я получаю:
CREATE TYPE [dbo].[g.Options]
Нет параметра "схемы" для SqlUserDefinedType.
Я верю, что могу написать скрипт T-SQL, чтобы сделать тип специально для сборки, но я бы хотел этого избежать, поскольку я планирую поместить большинство моих типов в разные схемы и не будубудьте счастливы регистрироваться через явный TSQL для каждого.
РЕДАКТИРОВАТЬ:
Как указывает Соломон Руцкий, вы можете установить схему по умолчанию всвойства проекта.Это, безусловно, не заменит нечто похожее на параметр 'schema' в SqlUserDefinedType, особенно если вы хотите работать с несколькими схемами, но, безусловно, выполняет работу для нужд многих людей.
Сценарий после развертываниятехнически выполнит работу, но, к сожалению, механизм сравнения не знает о логике после развертывания и поэтому будет постоянно регистрировать разницу в схеме как нечто, что необходимо изменить.Таким образом, все ваши затронутые объекты будут удаляться и воссоздаваться при каждой публикации независимо от того, изменили вы их или нет.