Я хочу создать задачу сценария для загрузки данных из MongoDB на SQL Сервер.
Я использую Visual Studio 2017 и цель SQL Версия сервера - 2017.
Цель по умолчанию. NET Версия задачи сценария, основанная на вышеупомянутом, - 4.5, поэтому я получил версия 2.3, которая была самой последней для цели 4.5
. Чтобы получить dll, я сначала использовал NuGet для загрузки пакетов, а затем скопировал следующие dll:
MongoDB.Driver.dll
MongoDB.Driver.Core.dll
MongoDB.Bson.dll
Я следовал инструкции отсюда: http://codeingaddiction.blogspot.com/2011/06/how-to-add-strong-name-to-existing-dll_16.html
Для того, чтобы производить сильные именованные dll.
Наконец, я добавил dll на GA C по следующему пути
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools
Затем я создал задачу сценария и вручную добавил 3 dll.
Мой тестовый код выглядит следующим образом:
using System;
using System.Data;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
using Microsoft.SqlServer.Dts.Runtime.Wrapper;
using MongoDB.Bson;
using MongoDB.Driver;
using MongoDB.Driver.Core;
using MongoDB.Bson.Serialization;
[Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute]
public class ScriptMain : UserComponent
{
public override void PreExecute()
{
base.PreExecute();
}
public override void PostExecute()
{
base.PostExecute();
}
public override void CreateNewOutputRows()
{
MongoClient client = new MongoClient("mongodb://dgm-mongodbdev-01.development.dc.opap:27017");
IMongoDatabase database = client.GetDatabase("sportsbetting-staging");
IMongoCollection<BsonDocument> collection = database.GetCollection<BsonDocument>("event");
collection.Find<BsonDocument>(null).Limit(3);
Console.WriteLine(collection);
}
}
При попытке сборки выдается следующая ошибка:
Severity Code Description Project File Line Suppression State
Error The type 'IAsyncCursorSource<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'MongoDB.Driver.Core, Version=2.3.0.157, Culture=neutral, PublicKeyToken=null'.
Драйвер ядра MongoDb не имеет никаких дополнительных зависимостей, которые я возможно, пропустил. Для версии 4.5. NET единственной зависимостью является MongoDB.Bson, которая добавляется в качестве ссылки.
Единственная статья, которую я нашел для задачи сценария служб SSIS, это: https://arcanecode.com/2014/01/14/importing-mongodb-data-using-ssis-2012/
Что устарело, потому что использовалась версия драйвера 1.x.
Есть идеи? Сообщение кажется вводящим в заблуждение, потому что кажется ясным, что я не пропускаю никакой зависимости.