【发布时间】:2021-07-02 20:00:41
【问题描述】:
我正在创建一个连接到 Mongo 数据库的 API。
在创建更新集合的某些字段的存储库的方法之后,我想也许我可以重构代码,因为以下结构重复了很多次:
var filter = Builders<Server>.Filter.Eq(x => x.Id, objectUpdated.Id);
var update = Builders<Server>.Update.Set(x=> x.SomeProperty, objectUpdated.SomeProperty);
我想过创建一个有点像这样的方法:
public static void Update<T>(ObjectId id, Property property)
{
var filter = Builders<T>.Filter.Eq(x => x.Id, id);
var update = Builders<T>.Update.Set(x=> x.property, property);
}
但是我不知道如何将属性作为参数以及如何比较过滤器中的Id属性,因为我正在处理一个泛型类,所以我会得到以下错误:
CS1061:“T”不包含“Id”的定义且不可访问 接受“T”类型的第一个参数的扩展方法“Id”可以是 找到(您是否缺少 using 指令或程序集引用?)
【问题讨论】: