【问题标题】:Should c# mongodb documents inherit from BsonDocumentc# mongodb文档是否应该继承自BsonDocument
【发布时间】:2018-04-06 22:05:37
【问题描述】:

用c#编写的mongodb文档classes是否应该继承自BsonDocument

例如:

/// <summary>
/// Company document
/// </summary>
public class CompanyDocument : BsonDocument
{
    /// <summary>
    /// Collection name
    /// </summary>
    public const string COLLECTION_NAME = "company";

    /// <summary>
    /// Unique company name
    /// </summary>
    [BsonElement("name")]
    public string Name
    {
        get;
        set;
    }

    /// <summary>
    /// List of referenced users
    /// </summary>
    [BsonElement("users")]
    public IList<MongoDBRef> Users
    {
        get;
        set;
    }
}

因为当我想query 数据时,似乎我需要从BsonDocument 继承。或者它应该更像一个POCO 对象还是从其他东西继承?

非常感谢!

【问题讨论】:

    标签: c# mongodb inheritance bson


    【解决方案1】:

    我知道这是一个老问题,但万一有人像我一样在这里偶然发现答案。答案是否定的。

    虽然有可能,但已注意到会导致许多问题。我特别看到的是序列化。

    我遇到了这两个错误报告:

    其中的一些摘录比我能更好地解释它:

    如果你真的想继承 BsonDocument,你需要做的就是把事情连接起来,这样你的 MyBsonDocument 值就可以正确序列化。 ——罗伯特·斯塔姆


    BsonDocument 可以表示任何存在的结构。因此,继承的唯一原因是 (a) 提供不同的行为(RawBsonDocument、LazyBsonDocument),或 (b) 提供对某些字段的强类型访问。 ——克雷格·威尔逊

    【讨论】:

      猜你喜欢
      • 2013-09-26
      • 2014-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多