我正在尝试构建一个连接到MongoDB的简单API。我有客户,我想将这些客户添加到数据库中
这是我的客户类:
public class Customer : BaseCustomer
{
public Customer(string name, string surname, string address) : base(name, surname, address)
{
}
}
它继承自BaseCustomer:
public class BaseCustomer
{
public string Key { get; }
public string Name { get; }
public string Surname { get; }
public string Address { get; }
protected BaseCustomer(string name, string surname, string address)
{
Name = name;
Surname = surname;
Address = address;
Key = "test";
}
}
我只是简单地插入它像这样:
public void CreateEntry(TObject o)
{
_mongoCollection.InsertOne(o);
}
为什么除了钥匙什么都显示了?(图像1)
如果我将BaseCustomer中的Key属性更改为public string Key { get; set; }
,则只显示密钥(Img2)为什么???
我只是简单地希望所有属性出现在数据库条目
Thanks in advance
2条答案
按热度按时间fivyi3re1#
你应该让
MongoDB
知道这件事。默认情况下,MongoDB
中的序列化器会忽略带有私有setter的属性,假设它们不能直接设置(例如,在序列化过程中)。当Key属性被更改为具有公共setter时,可以在BaseCustomer中设置Key属性的值。[BsonElement]
属性可用于指定数据库条目中Key属性的名称,而无需使用公共setter。这样的东西会有所帮助:
}
u4dcyp6a2#
如果你不提供get methods,MongoDB将无法找到属性。
更改为:
More info.