Вот информация о моей среде разработки:
Сообщество Microsoft Visual Studio 2015
.NET Framework 4.6
Сборка ASP.NET MVC System.Web.Mvc Version=5.2.3.0
MongoDB.Драйвер 2.0.1.27
Монгодб 3.0.6
В моем приложении C# у меня есть следующий код, который извлекает ссылку на базу данных MongoDB:
public class MongoDBConnectionManager
{
public IMongoDatabase getMongoDB() {
var client = new MongoClient("mongodb://localhost:27017");
IMongoDatabase iMgDb = client.GetDatabase("foo");
IMongoCollection<BsonDocument> UserDetails =
iMgDb.GetCollection<BsonDocument>("Users");
return iMgDb;
} // end of public IMongoDatabase getMongoDB()
} // end of public class MongoDBConnectionManager
Вот класс POCO, представляющий бизнес-объект пользователя:
using MongoDB.Bson.Serialization.Attributes;
public class UserModel
{
public object _id { get; set; } //MongoDb uses this field as identity.
[BsonId]
public int ID { get; set; }
[Required]
[BsonRepresentation(MongoDB.Bson.BsonType.String)]
public string UserName { get; set; }
[Required]
//[DataType(DataType.Password)]
[BsonRepresentation(MongoDB.Bson.BsonType.String)]
public string Password { get; set; }
[Required]
// [DataType(DataType.EmailAddress)]
[BsonRepresentation(MongoDB.Bson.BsonType.String)]
public string Email { get; set; }
[BsonRepresentation(MongoDB.Bson.BsonType.String)]
public string PhoneNo { get; set; }
[BsonRepresentation(MongoDB.Bson.BsonType.String)]
public string Address { get; set; }
}
Вот класс DAO C#, который использует класс диспетчера соединений Mongo DB:
public class DAO
{
public int insertNewUser(UserModel um)
{
MongoDBConnectionManager mgoDBCntMng = new MongoDBConnectionManager();
IMongoDatabase database = mgoDBCntMng.getMongoDB();
IMongoCollection <BsonDocument> UserDetails = database.GetCollection<BsonDocument>("Users");
UserDetails.InsertOneAsync(um);
return 0;
}
}
Проблема, с которой я столкнулся, связана со следующей строкой кода в классе DAO:
UserDetails.InsertOneAsync(um);
Visual Studio Community 2015 отображает следующую ошибку:
cannot convert from 'UserModel' to MongoDB.Bson.BsonDocument
Я считаю, что ошибка как-то связана с переводом POCO UserModel в формат MongoDB Bson. Поэтому в моем POCO UserModel я использовал пространство использования под названием MongoDB.Bson.Serialization.Attributes, потому что я думал, что нам нужно использовать аннотации MongoDB. Однако решить проблему так и не удалось.
Может кто-нибудь, пожалуйста, скажите мне, как исправить проблему?