Как вы указали. Этот вопрос уже задавался без удовлетворительного ответа.
SMO строго управляет кодом. Предыдущая версия, DMO, могла использоваться в неуправляемом коде. Если вам нужно использовать SMO, вы должны использовать либо C ++ / CLI, либо создавать оболочки для COM.
Из документации MSDN по SMO :
Объектная модель SMO заменяет и
заменяет SQL-DMO. SMO поддерживает SQL
Server 2000, SQL Server 2005 и SQL
Server 2008. Он поддерживает больше SQL
Задачи управления сервером и содержит
много новых функций в SQL Server. SMO
разработан, чтобы быть более эффективным и
обеспечить больше контроля.
Библиотека DMO является объектной моделью COM,
тогда как SMO реализован как .NET
Рамочная сборка. COM-компоненты
библиотеки, которые обеспечивают многократное использование
функциональность для приложений и в
неуправляемое прикладное программирование.
Сборки .NET Framework обеспечивают
функциональность многократного использования для .NET
Фреймворк для написания управляемого кода
приложения.
При переходе на .NET
Рамочные технологии можно
есть приложения, написанные частично в
управляемый код и частично в неуправляемом
код. .NET Framework позволяет вам
интерфейс с компонентами COM, который
требуется первичная сборка взаимодействия.
Оболочка времени выполнения требуется для
SQL-DMO, чтобы его можно было вызывать из
приложение на основе .NET Framework.