我在WinForm项目中使用MongoDB,并且正在创建一个实用程序函数,可用于upsert
数据库中的记录。
到目前为止,这是方法:
public async Task<T> UpdateRoomType<T>(string table, string roomTypeName, T record)
{
var collection = db.GetCollection<T>(table);
var filter = Builders<T>.Filter.Eq(Constants.ROOM_TYPE, roomTypeName);
var result = await collection.ReplaceOneAsync(
filter,
record,
new UpdateOptions { IsUpsert = true }
);
return result;
}
但是我遇到一个构建错误:
无法将类型'MongoDB.Driver.ReplaceOneResult'隐式转换为'T'
如何解决此功能,以正确地将更新后的记录返回给调用者?
答案 0 :(得分:1)
您应该返回适当的类型:
public async Task<ReplaceOneResult> UpdateRoomType<T>(string table, string roomTypeName, T record)
^
|
该错误告诉您正在返回类型为MongoDB.Driver.ReplaceOneResult
的对象,该对象似乎是:
return result;
但是在您的方法中,您将返回类型声明为T
:
public async Task<T> UpdateRoomType<T>
出现错误。