MongoDB.Driver.MongoInсовместимыйDriverException: сервер сообщает о проводной версии 4, но для этой версии драйвера требC#

Место общения программистов C#
Ответить
Anonymous
 MongoDB.Driver.MongoInсовместимыйDriverException: сервер сообщает о проводной версии 4, но для этой версии драйвера треб

Сообщение Anonymous »

Итак, я пытаюсь использовать EntityFramework и MongoDB.
Мой докер составляет:

Код: Выделить всё

services:
mongo-db:
container_name: mongo-db
image: mongo
restart: always
ports:
- "27017:27017"
Сущность и контекст:

Код: Выделить всё

public class Order
{
public string Id { get; set; }
public string Name { get; set; }
}

public class OrdersDbContext(DbContextOptions options) : DbContext(options)
{
public DbSet Orders { get; set; }

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity().ToCollection("orders");
}
}
И как это попытаться использовать:

Код: Выделить всё

var order = new Order
{
Id = Helpers.GetNewId(),
Name = "Some order"
};

var mongoClient = new MongoClient("mongodb://localhost:27017");
var dbContextOptions =
new DbContextOptionsBuilder().UseMongoDB(mongoClient, "orders");
var ordersDb = new OrdersDbContext(dbContextOptions.Options);
ordersDb.Orders.Add(order);
ordersDb.SaveChanges();
При сохранении изменений я получаю эту ошибку

Код: Выделить всё

Unhandled exception. MongoDB.Driver.MongoIncompatibleDriverException: Server at localhost:27017 reports wire version 4, but this version of the driver requires at least 7 (MongoDB 4.0.0).
at MongoDB.Driver.MongoIncompatibleDriverException.ThrowIfNotSupported(ClusterDescription description)
at MongoDB.Driver.Core.Clusters.Cluster.SelectServerHelper.SelectServer()
at MongoDB.Driver.Core.Clusters.Cluster.SelectServer(IServerSelector selector, CancellationToken cancellationToken)
at MongoDB.Driver.Core.Clusters.IClusterExtensions.SelectServerAndPinIfNeeded(IClusterInternal cluster, ICoreSessionHandle session, IServerSelector selector, IReadOnlyCollection`1 deprioritizedServers, CancellationToken cancellationToken)
at MongoDB.Driver.Core.Bindings.WritableServerBinding.GetWriteChannelSource(IReadOnlyCollection`1 deprioritizedServers, CancellationToken cancellationToken)
at MongoDB.Driver.Core.Bindings.WritableServerBinding.GetWriteChannelSource(CancellationToken cancellationToken)
at MongoDB.Driver.Core.Bindings.ReadWriteBindingHandle.GetWriteChannelSource(CancellationToken cancellationToken)
...
Для меня это не имеет смысла, поскольку фактическая версия mongodb в контейнере — 8.0.3. Есть идеи, как это исправить?

Подробнее здесь: https://stackoverflow.com/questions/792 ... ersion-4-b
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»