Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ASP.NET核心Blazor中使用MongoDB作为服务_C#_Asp.net Core_Blazor - Fatal编程技术网

C# 在ASP.NET核心Blazor中使用MongoDB作为服务

C# 在ASP.NET核心Blazor中使用MongoDB作为服务,c#,asp.net-core,blazor,C#,Asp.net Core,Blazor,因此,我创建了以下MongoDBService: public class MongoDBService { private const String CONNECTION_STRING = "mongodb://localhost:27017"; private const String DATABASE_NAME = "TestingTesting"; private readonly MongoClient _Client;

因此,我创建了以下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);
    }
}
我还启动了我的MongoDBService的一个实例:

Project.Services.MongoDBService mongo = new Services.MongoDBService();
但当我尝试使用它时,在FindAsync()方法下会出现一条红色的曲线:

异步任务GetAllClocks() { MongoDB.Driver.filterDefinitionFilter=MongoDB.Driver.Builders.filter.Empty; MongoDB.Driver.IMongoCollection cursor=wait mongo.GetCollection().FindAsync(过滤器); } 错误是:

CS0411:无法从用法推断方法“IMongoCollection.FindAsync(FilterDefinition、FindOptions、CancellationToken)”的类型参数。尝试指定类型


我已经在谷歌上搜索了一段时间,虽然听起来我要离开编译器来决定使用什么类型,但我确信我明确指定了Project.Data.Clock类型。完全被难住了。有什么想法吗?

FindOptions
需要两个类型参数,您只提供一个。如果希望返回
时钟
对象,请尝试
FindOptions

猜测:FindOptions需要两个类型参数,而您只提供一个。如果你想返回一个时钟对象,试试FindOptions。嘿,Ricardo,你说得对,我创建了一个新的FindOptions实例,并将它作为参数传递给FindAsync方法。奇怪的是,我以前从来没有这样做过,这是我第一次遇到这个错误。嘿,里卡多,谢谢你。知道为什么在这个例子中我必须传递FindOptions参数吗?通常FilterDefinition.Empty足以满足我的计算机中的FindAsync(),使用NuGet packages 2.11.2,我不需要传递FindOptions参数。你用的是什么版本?我拥有的是:client.GetDatabase(“”)。GetCollection(“”)。FindAsync(filter)我的MongoDB.Driver和MongoDB.Driver.Core也都是2.11.2!很奇怪。
@inject Project.Services.MongoDBService
Project.Services.MongoDBService mongo = new Services.MongoDBService();
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);
}