Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.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
带有POCO类的mongodb graphLookup c#示例_C#_Mongodb_Graphlookup - Fatal编程技术网

带有POCO类的mongodb graphLookup c#示例

带有POCO类的mongodb graphLookup c#示例,c#,mongodb,graphlookup,C#,Mongodb,Graphlookup,是否有机会将graphLookup聚合阶段用于POCO类而不是bson文档? 我发现的所有例子都使用了BsonDocuments,这让我非常困惑。 谢谢。让我们举一个示例场景,希望获取库中给定类别的面包屑结果 下面是一个完整的程序,它插入一些种子数据,并使用graphlookup聚合阶段获取正念类别的面包屑: 注意:为了简洁起见,我使用了MongoDB.Entitieslibrary。聚合查询与官方驱动程序相同 使用MongoDB.Driver; 使用MongoDB.Entities; 使用制度

是否有机会将graphLookup聚合阶段用于POCO类而不是bson文档? 我发现的所有例子都使用了BsonDocuments,这让我非常困惑。
谢谢。

让我们举一个示例场景,希望获取库中给定类别的面包屑结果

下面是一个完整的程序,它插入一些种子数据,并使用graphlookup聚合阶段获取
正念
类别的面包屑:

注意:为了简洁起见,我使用了
MongoDB.Entities
library。聚合查询与官方驱动程序相同

使用MongoDB.Driver;
使用MongoDB.Entities;
使用制度;
使用System.Collections.Generic;
使用System.Threading.Tasks;
命名空间测试应用程序
{
公共类类别:实体
{
公共字符串名称{get;set;}
公共字符串ParentCategory{get;set;}
}
公开课成绩
{
公共字符串[]面包屑{get;set;}
}
公共静态类程序
{
专用静态异步任务Main()
{
等待DB.InitAsync(“测试”);
等待新的[]{
新类别{Name=“Books”},
新类别{Name=“Sci Fi”,ParentCategory=“Books”},
新类别{Name=“Space”,ParentCategory=“Sci-Fi”},
新类别{Name=“AI”,ParentCategory=“Sci-Fi”},
新类别{Name=“自助”,ParentCategory=“图书”},
新类别{Name=“正念”,ParentCategory=“自助”},
新类别{Name=“催眠疗法”,ParentCategory=“自助”}
}.SaveAsync();
var collection=DB.collection();
var result=await collection.Aggregate()
.Match(c=>c.Name==“正念”)
GraphLookup先生(
来源:收藏,
connectFromField:nameof(Category.ParentCategory),
connectToField:nameof(Category.Name),
startWith:$“${nameof(Category.Name)}”,
@如:“面包屑”,
深度字段:“订单”)
.放松(“面包屑”)
.SortByDescending(x=>x[“面包屑.订单”])
.Group(“{u id:null,BreadCrumb:{$push:'$BreadCrumb'}}”)
.Project(“{u id:0,BreadCrumb:'$BreadCrumb.Name'}”)
.As()
.ToListAsync();
var output=string.Join(“>”,结果[0].BreadCrumb);
Console.WriteLine(输出);//书籍>自助>正念
Console.ReadLine();
}
}
}