gpt4 book ai didi

c# - 在 ASP.NET Core Blazor 中使用 MongoDB 作为服务

转载 作者:行者123 更新时间:2023-12-04 08:47:27 27 4
gpt4 key购买 nike

因此,我创建了以下 MongoDBService:

public class MongoDBService
{
private const String CONNECTION_STRING = "mongodb://localhost:27017";
private const String DATABASE_NAME = "TestingTesting";
private readonly MongoClient _Client;

public MongoDBService()
{
_Client = new MongoClient(CONNECTION_STRING);
}

public IMongoCollection<T> GetCollection<T>()
{
return _Client.GetDatabase(DATABASE_NAME).GetCollection<T>(typeof(T).Name);
}
}
我已在我的 asp.net core Startup.cs 中将 MongoDBService 设置为服务:
services.AddSingleton<MongoDBService>();
然后我尝试通过将服务注入(inject) .razor 页面来使用该服务:
@inject Project.Services.MongoDBService
我也在启动我的 MongoDBService 的一个实例:
Project.Services.MongoDBService mongo = new Services.MongoDBService();
但是当我尝试使用它时,我在 FindAsync() 方法下得到一条红色波浪线:
async Task GetAllClocks()
{
MongoDB.Driver.FilterDefinition<Project.Data.Clock> filter = MongoDB.Driver.Builders<Project.Data.Clock>.Filter.Empty;

MongoDB.Driver.IMongoCollection<Project.Data.Clock> cursor = await mongo.GetCollection<Project.Data.Clock>().FindAsync(filter);
}
错误是:

CS0411: The type arguments for method 'IMongoCollection.FindAsync(FilterDefinition, FindOptions<Clock, TProjection>, CancellationToken)' cannot be inferred from the usage. Try specifying the type


我已经在谷歌上搜索了一段时间,虽然听起来我要让编译器决定使用什么类型,但我确定我明确指定了 Project.Data.Clock 类型。绝对难倒。有任何想法吗?

最佳答案

FindOptions需要两个类型参数,而您只提供一个。如果您想返回 Clock反对,试试FindOptions<Clock, Clock> .

关于c# - 在 ASP.NET Core Blazor 中使用 MongoDB 作为服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64241505/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com