MongoDb collection 名称不同于 C# class

MongoDb collection Name different from C# class

这是我们的 C# 泛型 Class。

public class CustomerQuoteDetails<T> :BaseClass {
    [BsonId(IdGenerator = typeof(UniqueIdGenerator))]
    public string QuoteDetailId { get; set; }
    public string Title { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string ContactNo { get; set; }
    public DateTime DOB { get; set; }
    public string Email { get; set; }
    public string Password { get; set; }
    public string Token { get; set; }
    public string ProfilePicture { get; set; }
    [BsonDateTimeOptions(Kind = DateTimeKind.Local)]
    public DateTime TokenCreatedOn { get; set; }
    [BsonDateTimeOptions(Kind = DateTimeKind.Local)]
    public DateTime LastLoginTime { get; set; }
    public List<T> Answers { get; set; }       
}

这是我们class生成的文档。

{ 
    "_id" : "053ab8f1-ceda-49a7-ab7a-0dce034b4c20", 
    "CreatedBy" : "", 
    "CreatedDate" : ISODate("2019-10-04T04:52:44.313+0000"), 
    "UpdatedBy" : "", 
    "UpdatedDate" : ISODate("2019-10-04T04:52:44.314+0000"), 
    "IsDeleted" : false, 
    "Title" : "Mr", 
    "FirstName" : "", 
    "LastName" : "", 
    "ContactNo" : "", 
    "DOB" : ISODate("2019-10-04T04:52:44.314+0000"), 
    "Email" : "a@a.com", 
    "Password" : null, 
    "Token" : "7e396637-e8b2-4c1c-badb-cc14d785b03d", 
    "ProfilePicture" : null, 
    "TokenCreatedOn" : ISODate("2019-10-04T04:52:44.314+0000"), 
    "LastLoginTime" : ISODate("2019-10-04T04:52:44.314+0000"), 
    "Answers" : [

    ],     
}

问题是我们想将 collection 命名为 CustomerQuoteDetails,但由于通用 class 而将其命名为 CustomerQuoteDetails`1。有什么办法可以让我的 collection 随心所欲地命名吗?

为什么不引入一个 属性 允许您设置集合名称? 根据你的评论,我真的不能告诉你在哪里调用你的 GetCollection(),在你的基地 class 在一些存储库或任何地方。

但是没有什么能阻止你在你的 BaseClass 上实现一个名为 CollectionName 的虚拟 属性 并在你的 CustomerQuoteDetails class 中覆盖它并做类似于 _mongoDbContext.GetCollection<TEntity>(customerQuoteDetails.CollectionName); 或引入包含您的集合名称的常量 class 。也许更新您的答案以包括您在哪里执行 GetCollection().