MongoDb的.NET驱动程序:有什么方法可以避免属性名称硬编码?

时间:2012-04-30 21:23:05

标签: c# mongodb mongodb-.net-driver

我可以使用collection.Insert<T>来插入实例,collection.Save<T>来更新它们,我看不出为什么MongoDb的c#驱动程序没有提供类似方法来删除特定实例。他们的Remove方法要求IMongoQuery参数,这似乎需要硬编码属性名称,如Query.EQ("Id", BsonValue.Create(id))。我想指定整个实例来删除它像Remove<T>,或者使用RemoveById,或者使用特定的输入类型构建类似LINQ的查询,或者任何其他方式来摆脱属性硬编码, - 我的事情我在MS Entity Framework POCO中使用。有这样的方式吗?

更新:好的,我找到了一种方法:

IMongoQuery mq = new QueryDocument(entity.ToBsonDocument());
customers.Remove(mq);

这是唯一的方法吗?

由于

1 个答案:

答案 0 :(得分:1)

还没有办法做你要求的事情,但它是一个经常被要求的功能。您可以对此JIRA请求投票支持该功能:

https://jira.mongodb.org/browse/CSHARP-457

你发现的方法很有效,但却很重。它将整个文档用作查询。是的,它确实与您要删除的文档相匹配,但是有更多的数据通过电线传输而不是必要的。