这是我到我的数据库的连接字符串:
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);
Run Code Online (Sandbox Code Playgroud)
我听说你可以放弃这个getserver方法:
public static MongoCollection<ItemEntity> GetMyItemCollectionDB = new MongoClient(ConnectionString + DBName + AuthSource)
.GetDatabase(DBName)
.GetCollection<ItemEntity>(CollectionName) as MongoCollection<ItemEntity>;
Run Code Online (Sandbox Code Playgroud)
但是为此,我收到了“空对象”错误。有什么问题?
编辑:如果使用新 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));
}
Run Code Online (Sandbox Code Playgroud)
所以你可以尝试以下代码
MongoClient client = new MongoClient(ConnectionString + DBName + AuthSource);
MongoServer server = new MongoServer(MongoServerSettings.FromClientSettings(client.Settings));
var yourCollection = server.GetDatabase(DBName).GetCollection<ItemEntity>(CollectionName);
Run Code Online (Sandbox Code Playgroud)
2.0.0+版本有4种方式
MongoDB.Driver.MongoServer.Create(MongoServerSettings)
MongoDB.Driver.MongoServer.WithReadConcern(ReadConcern)
MongoDB.Driver.MongoServer.WithReadPreference(ReadPreference)
MongoDB.Driver.MongoServer.WithWriteConcern(WriteConcern)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2817 次 |
| 最近记录: |