我正在使用Mongo的官方C#驱动编写Web应用程序。
为了实现引用,必须手动获取它们。
假设我们有以下内容:
class User {
...
public MongoDBRef Topic { get; set; }
}
为了获取主题,我们需要执行以下操作:
db.FetchDBRefAs<Topic>(user.Topic);
要创建一个新的:
user.Topic = new MongoDBRef(TopicsTable, topic._id);
我决定创建一个虚拟属性,以使其更加方便:
[BsonIgnore]
public Topic _Topic
{
get
{
return db.FetchDBRefAs<Topic>(Topic);
}
set
{
CreatedAd = new MongoDBRef(TopicsTable, value._id);
}
}
现在我可以像这样使用它:
user._Topic = someTopic;
anotherTopic = user._Topic;
显然,为所有引用的对象做这件事很麻烦。有没有办法使这个过程自动化呢?谢谢。
virtual
关键字:public virtual Topic _Topic {...}
,这意味着它可以在派生类中被重写。那只是一个“显式实现的属性”,或者“手动属性”,与“自动属性”相对。 - R. Martinho Fernandes