如何将mongo集合强制转换为C#接口

ADO连接

我有一个带签名的存储库:

public Task<IList<IFoo>> GetList()
{

}

如何将mongoDb集合投射到此接口?(MongoDb驱动程序2.0)

public Task<IList<IFoo>> GetList()
{
    Task<List<Foo>> foo = this.database.GetCollection<Foo>("Foo").Find(e => true).ToListAsync();

    return foo ; // ?? somehow cast Task<List<Foo>> to Task<IList<IFoo>>
}

还有,这段代码困扰我

collection.Find(e => true).ToListAsync()

有没有更好的方法来收集所有文档?

i3arnon

这里有两个问题。

  1. 你怎么投Task<List<Foo>>Task<IList<IFoo>>

您不能,因为Task.Net中不是协变的。你可以解开,其结果await,但你可以不投仍然是行不通的List<Foo>进入IList<IFoo>

您可以做的是新建List<IFoo>一个项目,然后将它们移到所有项目上:

public async Task<IList<IFoo>> GetList()
{
    List<Foo> results = await database.GetCollection<Foo>("Foo").Find(_ => true).ToListAsync();
    return results.Cast<IFoo>().ToList();
}
  1. 有没有更好的方法来收集所有文档?

不是现在。您可以传入一个空的过滤器文档(new BsonDocument()),但我认为这没有什么比这更好的了。在驱动程序的下一版本(v2.1)中,他们添加了一个空的过滤器,因此您可以执行以下操作:

await database.GetCollection<Foo>("Foo").Find(Builders<Foo>.Filter.Empty)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将mongo集合强制转换为C#接口

来自分类Dev

当无法实例化接口时,如何将类实例强制转换为接口?

来自分类Dev

如何将SQL bigint强制转换为C#等效项

来自分类Dev

如何将SQL bigint强制转换为C#等效项

来自分类Dev

如何将SQL DateTime Null强制转换为c#“ DateTime”?(Nullable <DateTime>)?

来自分类Dev

C#如何将List <object []>强制转换为List <customClass>

来自分类Dev

如何将Json表(数组数组)数据转换为C#对象的集合

来自分类Dev

如何将Fragment的上下文强制转换为接口

来自分类Dev

如何将数组转换为集合

来自分类Dev

如何将列表集合转换为派生集合对象?

来自分类Dev

如何将C#代码转换为C ++?

来自分类Dev

如何将C ++代码转换为C#

来自分类Dev

如何将ClusterRouterPool从C#转换为HOCON配置?

来自分类Dev

C#如何将IntPtr转换为结构?

来自分类Dev

如何将字典列表转换为IDictionary“ C#”

来自分类Dev

如何将C#转换为vb.net

来自分类Dev

如何将XAML代码的动画转换为C#

来自分类Dev

如何将Javascript代码转换为C#代码

来自分类Dev

如何将XElement转换为XComment(C#)

来自分类Dev

如何将Smallmoney转换为C#

来自分类Dev

如何将Redis ArrayRedisResult转换为C#数组?

来自分类Dev

如何将动态JSON转换为C#对象

来自分类Dev

如何将List <Object>转换为Json。C#

来自分类Dev

如何将XML转换为CSV(C#)

来自分类Dev

如何将方法从C#转换为JQuery

来自分类Dev

如何将DriveInfo []转换为List <string> C#

来自分类Dev

如何将C#对象转换为JSON对象

来自分类Dev

如何将XElement转换为XComment(C#)

来自分类Dev

如何将var转换为List c#

Related 相关文章

热门标签

归档