[英]How to map model in asp.net mvc application with a mongodb collections
嗨,我试图创建一个asp.net mvc应用程序,并想到使用mondoDb作为数据库。 mongodb集合没有任何固定的架构,该如何在asp.net mvc模型中映射mongoDb集合?
我浏览了很多网站,但找不到任何相关答案。
有人能给我启发吗?
如果我从企业级应用程序开始,是否需要在应用程序中使用存储库模式和依赖注入? 我尝试使用这两个,但这会使我的应用程序变得复杂。
我没有输入任何代码,请耐心等待。
请帮我解决一下这个。 谢谢
要将mongo集合映射到您的.Net类型,应在MongodDriver中使用强类型集合 。 例如,您具有Person类型:
Person {
public ObjectId Id { get; set; }
public int Age { get; set; }
public string Name { get; set; }
}
现在,如果您想让所有人脱离您的蒙哥,您应该这样写:
var client = new MongoClient();
var db = client.GetDatabase("test");
var col = db.GetCollection<Person>("persons");
var persons = col.Find(x => true).ToListAsync();
获得MongoCollection之后,您将获得存储库:var repo = db.GetCollection(“ ModelName”);
现在您可以执行以下查询:repo.FindOne(Query.EQ(x => x.Id,id)); 或repo.FindAll(); 或repo.Remove(..)或repo.Update(..)
您可以根据您的业务将通用的通用类创建为存储库,也可以为每个mongo模型类创建一个通用的通用类。
下面是一个示例模型:
class TestModel
{
public string Name {get;set;}
[BsonIgnore]
public string IgnoreThis{get;set;}
[BsonId]
[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }
}
您可以使用[BsonId]和[BsonRepresentation(BsonType.ObjectId)]将其用作集合的主键。
下面的链接列出了在c#模型和mongodb集合之间进行映射时的一些常见属性。 希望会有所帮助。
http://api.mongodb.org/csharp/1.1/html/7c3829d2-ad42-6bbc-40c6-c2adca36078b.htm
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.