c# - 无法将类型“MongoDB.Driver.ReplaceOneResult”隐式转换为“T”
问题描述
我在我的 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”
如何修复此函数以正确地将插入的记录返回给调用者?
解决方案
您应该返回适当的类型:
public async Task<ReplaceOneResult> UpdateRoomType<T>(string table, string roomTypeName, T record)
^
|
该错误告诉您您正在返回一个类型的对象:MongoDB.Driver.ReplaceOneResult
这似乎是:
return result;
但是在您的方法中,您将返回类型声明为T
:
public async Task<T> UpdateRoomType<T>
因此错误。
推荐阅读
- java - 将 crc 代码从 C 转换为 Java 会产生意想不到的结果
- python-3.x - 如何在课堂上访问或使用名称?Python
- azure-cognitive-search - 天蓝色搜索的索引结构
- react-native - 我在本机反应中收到无法访问的代码警告
- c - 如何一次写入()超过2G的数据
- php - 通过python更新文件时运行php脚本
- python-3.x - python使用文字/ vs os.path.sep
- c++ - Lambda 表达式只是在它之前捕获对象吗?
- javascript - 如何检测和关闭 JavaScript 对话框关闭按钮以关闭弹出 android
- xml-parsing - Azure 逻辑应用 - 在转换 xml 之前修改文本