C# MongoDB MongoClient.GetServer()已被弃用。什么是新的API?

C# MongoDB MongoClient.GetServer()已被弃用。什么是新的API?,c#,mongodb,C#,Mongodb,这是我与数据库的连接字符串: private static string ConnectionString = "mongodb://user:password@server:port/"; private static string AuthSource = "?authSource=location"; public static MongoCollection<ItemEntity> GetMyItemCollectionDB = new MongoClient(Connec

这是我与数据库的连接字符串:

private static string ConnectionString = "mongodb://user:password@server:port/";
private static string AuthSource = "?authSource=location";

public static MongoCollection<ItemEntity> GetMyItemCollectionDB = new MongoClient(ConnectionString + DBName + AuthSource)
.GetServer().GetDatabase(DBName).GetCollection<ItemEntity>(CollectionName);
但是,我得到了一个“空对象”错误。有什么问题吗


编辑:如果使用新API不是很重要,那么告诉我。

要获得MongoServer实例,我反编译程序集MongoDB.Driver.dll, 函数GetServer是

[Obsolete("Use the new API instead.")]
public static MongoServer GetServer(this MongoClient client)
{
    return 
MongoServer.Create(MongoServerSettings.FromClientSettings(client.Settings));
} 
所以您可以尝试以下代码

MongoClient client = new MongoClient(ConnectionString + DBName + AuthSource);
MongoServer server =  new MongoServer(MongoServerSettings.FromClientSettings(client.Settings));
var yourCollection = server.GetDatabase(DBName).GetCollection<ItemEntity>(CollectionName);

我相信您知道您的第二个代码最终返回了一个
IMongoCollection


但是,
MongoCollection
并不是从
IMongoCollection
继承的,这就是为什么最后会得到一个
NULL
值。

你的GetMyItemCollectionDB方法做了很多。。。。哪一位返回空值?好的,第一位有效。。我不明白为什么第二个不起作用。你能解释一下原因吗?以及可能的解决方案如果你能详细说明,你的答案会更有用。
MongoClient client = new MongoClient(ConnectionString + DBName + AuthSource);
MongoServer server =  new MongoServer(MongoServerSettings.FromClientSettings(client.Settings));
var yourCollection = server.GetDatabase(DBName).GetCollection<ItemEntity>(CollectionName);
MongoDB.Driver.MongoServer.Create(MongoServerSettings)
MongoDB.Driver.MongoServer.WithReadConcern(ReadConcern)
MongoDB.Driver.MongoServer.WithReadPreference(ReadPreference)
MongoDB.Driver.MongoServer.WithWriteConcern(WriteConcern)