繁体   English   中英

如何使用MongoDB集合在ASP.NET MVC应用程序中映射模型

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM