Я не уверен, что это поможет вам пройти весь путь, однако в SQL Server 2008 будет установлен System.Data.DataSetExtensions , чтобы вы могли ссылаться на него из своего проекта SQL CLR.Обратите внимание, что я вошел в систему как член фиксированной серверной роли sysadmin .
Сначала мне нужно было подготовить базу данных для загрузки небезопасной сборки.Я выполнил ALTER DATABASE dbname SET TRUSTWORTHY ON;
, затем установил для владельца базы данных значение sa с помощью ALTER AUTHORIZATION ON database::dbname TO sa;
.
Затем я извлек v3.5 сборки из GAC на моей рабочей станции, скопировавфайл в каталог хранения (скажем, c: \ temp) из C: \ Windows \ assembly \ GAC_MSIL \ System.Data.DataSetExtensions \ 3.5.0.0__b77a5c561934e089.
После этого я смог установить сборку с оператором CREATE ASSEMBLY [System.Data.DataSetExtensions] FROM 'C:\temp\System.Data.DataSetExtensions.dll' WITH PERMISSION_SET = UNSAFE;
.
Когда вы закончите оператор, вы получите это дружеское напоминание: Предупреждение: сборка Microsoft .NET Framework'system.data.datasetextensions, версия = 3.5.0.0, культура = нейтральная, publickeytoken = b77a5c561934e089, processorarchitecture = msil.'Ваша регистрация не полностью протестирована в среде, размещенной на SQL Server, и не поддерживается.В будущем, если вы обновите или обслужите эту сборку или .NET Framework, ваша процедура интеграции CLR может перестать работать.Для получения более подробной информации обратитесь к электронной документации по SQL Server.
На этом этапе я смог сослаться на System.Data.DataSetExtensions в моем проекте SQL CLR, и я подтвердил, чтоAsEnumerable()
обнаружен в экземпляре DataTable.