首页 文章

如何在C#mongo驱动程序中设置多个集合名称?

提问于
浏览
1

我正在使用MongoDB默认的C#驱动程序 . 在我的代码中,我创建了一个名为Customer的实体(集合) . 是否有默认约定或类属性将在MongoDB('customers')中设置我的集合名称的复数版本?

3 回答

  • 0

    我没有't found any so I'使用Humanizer库来复制名称 . 我实际上更进一步,使用类型本身来创建一个集合:

    var customers = database.GetCollection(typeof(Customer).Name.Pluralize().ToLower());
    
  • 0

    您可以使用 System.Data.Entity.Design 程序集中提供的.NET复数服务,而不是使用I3arnon建议的外部库 .

    你可以像这样使用它:

    var serv = PluralizationService.CreateService(new System.Globalization.CultureInfo("en-us"));
     var plural = serv.Pluralize(typeof(Person).Name);
    

    如上例所示,它会正确地将 Person 复数为 PeopleCustomerCustomers . 它与实体框架复数化使用的机制相同 .

  • 2

    我遇到了同样的问题,所以我围绕.NET MongoDB驱动程序编写了一个简单的包装器,以自动化对象到集合名称映射 . 它使用了 System.Data.Entity.Design.PluralizationServices ,因此它不依赖于任何外部依赖 . 它可以为您节省几行代码 .

    如果你有兴趣:https://github.com/MikePennington/Mongonizer

相关问题