我正在使用MongoDB默认的C#驱动程序 . 在我的代码中,我创建了一个名为Customer的实体(集合) . 是否有默认约定或类属性将在MongoDB('customers')中设置我的集合名称的复数版本?
我没有't found any so I'使用Humanizer库来复制名称 . 我实际上更进一步,使用类型本身来创建一个集合:
var customers = database.GetCollection(typeof(Customer).Name.Pluralize().ToLower());
您可以使用 System.Data.Entity.Design 程序集中提供的.NET复数服务,而不是使用I3arnon建议的外部库 .
System.Data.Entity.Design
你可以像这样使用它:
var serv = PluralizationService.CreateService(new System.Globalization.CultureInfo("en-us")); var plural = serv.Pluralize(typeof(Person).Name);
如上例所示,它会正确地将 Person 复数为 People 或 Customer 为 Customers . 它与实体框架复数化使用的机制相同 .
我遇到了同样的问题,所以我围绕.NET MongoDB驱动程序编写了一个简单的包装器,以自动化对象到集合名称映射 . 它使用了 System.Data.Entity.Design.PluralizationServices ,因此它不依赖于任何外部依赖 . 它可以为您节省几行代码 .
System.Data.Entity.Design.PluralizationServices
如果你有兴趣:https://github.com/MikePennington/Mongonizer
3 回答
我没有't found any so I'使用Humanizer库来复制名称 . 我实际上更进一步,使用类型本身来创建一个集合:
您可以使用
System.Data.Entity.Design
程序集中提供的.NET复数服务,而不是使用I3arnon建议的外部库 .你可以像这样使用它:
如上例所示,它会正确地将 Person 复数为 People 或 Customer 为 Customers . 它与实体框架复数化使用的机制相同 .
我遇到了同样的问题,所以我围绕.NET MongoDB驱动程序编写了一个简单的包装器,以自动化对象到集合名称映射 . 它使用了
System.Data.Entity.Design.PluralizationServices
,因此它不依赖于任何外部依赖 . 它可以为您节省几行代码 .如果你有兴趣:https://github.com/MikePennington/Mongonizer