Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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
Database 从Ravendb加载所有特定类型的对象,并使用include加载相关文档_Database_Ravendb - Fatal编程技术网

Database 从Ravendb加载所有特定类型的对象,并使用include加载相关文档

Database 从Ravendb加载所有特定类型的对象,并使用include加载相关文档,database,ravendb,Database,Ravendb,我试图从ravenDB加载类型为的所有元素,并包括每个特定对象中包含的相关文档(以提高性能)。例如,我尝试将以下两个调用混合在一起: 要加载所有文档,请执行以下操作: _session.Advanced.DocumentQuery<Cause>() .WhereEquals(x => x.IsDeleted, false) .WaitForNonStaleResultsAsOfLastWrite() .ToArray();

我试图从ravenDB加载类型为的所有元素,并包括每个特定对象中包含的相关文档(以提高性能)。例如,我尝试将以下两个调用混合在一起:

要加载所有文档,请执行以下操作:

 _session.Advanced.DocumentQuery<Cause>()
         .WhereEquals(x => x.IsDeleted, false)
         .WaitForNonStaleResultsAsOfLastWrite()
         .ToArray();
\u session.Advanced.DocumentQuery()
其中等于(x=>x.IsDeleted,false)
.WaitForNonSalesultsAsoflastWrite()
.ToArray();
要将相关文档包括在通话中,请执行以下操作:

_session.Include<Cause>(x => x.ValueIds)
        .Load(idCause);
\u会话。包括(x=>x.ValueIds)
.负载(原因);
有人知道我如何解决这个问题吗

编辑对于遇到此问题的任何人,一种可能的解决方案如下:

_session.Query<Cause>()
        .Include(x => x.ValueIds)
        .Where(x => x.IsDeleted == false);
\u session.Query()
.Include(x=>x.ValueIds)
其中(x=>x.IsDeleted==false);
编辑2 我遇到了一个不同的问题,但它与上述问题有关。如果我想在Include调用中添加一个额外的元素,有人知道我如何实现这一点吗?我尝试了以下方法,但我认为这不是正确的方法,因为正在对数据库进行其他调用:

_session.Query<Cause>()
        .Include(x => x.ValueIds)
        .Include(x => x.GroupIds)
        .Where(x => x.IsDeleted == false);
\u session.Query()
.Include(x=>x.ValueIds)
.Include(x=>x.groupId)
其中(x=>x.IsDeleted==false);
1)除了您在“Edit1”中提到的解决方案之外,
您还可以使用:

var results = session.Advanced.DocumentQuery<Cause>()
     .Include(x => x.ValueIds)
     .WhereEquals(x => x.IsDeleted, false)
     .ToList();
var results=session.Advanced.DocumentQuery()
.Include(x=>x.ValueIds)
其中等于(x=>x.IsDeleted,false)
.ToList();

2) 在同一个操作上使用多个包含是正确的(正如您在“Edit2”中所做的那样)

请看:

很抱歉,我的问题不是很清楚。我试图一次加载多个不同类型的实体,这就是为什么我要同时执行两个不同的include的原因。您在编辑中建议的方法似乎是指实体类型相同的情况。谢谢你的回答!