Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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
深度扩展不工作,尽管[BreezeQueryable(MaxExpansionDepth=100)]_Breeze - Fatal编程技术网

深度扩展不工作,尽管[BreezeQueryable(MaxExpansionDepth=100)]

深度扩展不工作,尽管[BreezeQueryable(MaxExpansionDepth=100)],breeze,Breeze,首先,我真的非常感谢开发人员。。。微风真是太棒了,我对你们的辛勤工作感激不尽 我已经使用Breeze和EF(最新的Breeze,最新的EF)有一段时间了,在一些DB更改之后,我现在被迫查询第四层对象。。。起初,我遇到了到达MaxExpansionDepth的错误,但是根据一些关于SO的问题/答案,我找到了[BreezeQueryable(MaxExpansionDepth=x)]属性。我已将此属性应用于控制器上的相关查询函数,从而消除了错误。。。然而,第四级的数据仍然不够充分 我已经通过一个特定

首先,我真的非常感谢开发人员。。。微风真是太棒了,我对你们的辛勤工作感激不尽

我已经使用Breeze和EF(最新的Breeze,最新的EF)有一段时间了,在一些DB更改之后,我现在被迫查询第四层对象。。。起初,我遇到了到达MaxExpansionDepth的错误,但是根据一些关于SO的问题/答案,我找到了[BreezeQueryable(MaxExpansionDepth=x)]属性。我已将此属性应用于控制器上的相关查询函数,从而消除了错误。。。然而,第四级的数据仍然不够充分

我已经通过一个特定的查询(基于第4级数据的键)成功地检索到了有问题的数据,在服务器端播放时一切都很好。。。关系运作正常等等。。。麻烦的查询如下:

function getPatient(patKey) {
    var query = breeze.EntityQuery
            .from("Patients")
            .where("Key", "==", patKey)
            .expand("..., ScanDates.Printouts.BMDSites, ...");

    return app.dataservice.manager.executeQuery(query);
}
顺便说一句-这是一个单一的病人,所以真的没有那么多的数据-它只是划分了相当多

如果有人有任何想法,我将不胜感激

干杯, 布拉德

附言:显然,我不需要“MaxExpansionDepth=100”,但我也尝试过使用低值(4,5等)

编辑:多亏了Dominictus,我现在意识到真正的问题不在于查询的深度——BMDSite会在响应中返回,但不管扩展深度如何,都不会具体化实体。如果我只是为它们查询,它们确实会具体化(即PrintoutKey=x的bmdsite)。。。但同样,这会导致服务器发生10到15次跳闸。我仍然很想知道如何一次获得所有的东西,或者只是想知道为什么这些东西不会在一次扩展中实现


编辑2:我刚想到打印输出类是TPH继承层次结构的基类。。。环顾其他一些问题,我怀疑这可能是问题的根源。

如果您使用其他一些查询来执行
患者
操作,我建议您复制
患者
方法,将其命名为
PatientsFull
,并在其中执行
。包括
,而不是客户端
展开。有时,扩展并不像预期的那样工作。(如果这是对
患者的唯一查询,则只需更改该方法)


对于一些不同的想法,您必须写下弹出控制台的任何可能的错误。

如果您使用一些其他查询来执行
患者
操作,我建议您复制
患者
方法,将其命名为
PatientsFull
,并在其中执行
。包含
而不是客户端
展开
。有时,扩展并不像预期的那样工作。(如果这是对
患者的唯一查询,则只需更改该方法)


对于一些不同的想法,您必须写下控制台中弹出的任何可能的错误。

结果表明,它与继承或扩展的深度无关。。。在创建一个简化模型时,我当然发现它工作得很好。重新添加我认为不相关的功能后,我最终打破了它,并通过添加一些[NotMapping]属性复制了我的问题,这些属性提供了对BMDSite列表的一些简单访问。例如,在从打印输出派生的类中:

    [NotMapped]
    public BMDSite _Ud = null;

    [NotMapped]
    public BMDSite Ud
    {
        get
        {
            if (_Ud == null)
            {
                _Ud = BMDSites.Find(b => b.Region == Region.Forearm_UD);
            }
            return _Ud;
        }
    }
在重新添加这个之后,我的BMDSite列表再次没有填充。事实证明,Breeze使用的JSON.net类没有查看[NotMapped](这很有意义,因为它是序列化,而不是DB映射)。。。通过在我的EF模型中添加对JSON.net的引用,并添加它的等效标记-ie:[NotMapped,JsonIgnore],它不会查看属性,并且一切正常

底线(对于那些略读的人)。。。上面的代码会导致问题,下面的代码工作正常:

    [NotMapped, JsonIgnore]
    public BMDSite _Ud = null;

    [NotMapped, JsonIgnore]
    public BMDSite Ud
    {
        get
        {
            if (_Ud == null)
            {
                _Ud = BMDSites.Find(b => b.Region == Region.Forearm_UD);
            }
            return _Ud;
        }
    }
干杯,
Brad

发现它与继承或扩展的深度无关。。。在创建一个简化模型时,我当然发现它工作得很好。重新添加我认为不相关的功能后,我最终打破了它,并通过添加一些[NotMapping]属性复制了我的问题,这些属性提供了对BMDSite列表的一些简单访问。例如,在从打印输出派生的类中:

    [NotMapped]
    public BMDSite _Ud = null;

    [NotMapped]
    public BMDSite Ud
    {
        get
        {
            if (_Ud == null)
            {
                _Ud = BMDSites.Find(b => b.Region == Region.Forearm_UD);
            }
            return _Ud;
        }
    }
在重新添加这个之后,我的BMDSite列表再次没有填充。事实证明,Breeze使用的JSON.net类没有查看[NotMapped](这很有意义,因为它是序列化,而不是DB映射)。。。通过在我的EF模型中添加对JSON.net的引用,并添加它的等效标记-ie:[NotMapped,JsonIgnore],它不会查看属性,并且一切正常

底线(对于那些略读的人)。。。上面的代码会导致问题,下面的代码工作正常:

    [NotMapped, JsonIgnore]
    public BMDSite _Ud = null;

    [NotMapped, JsonIgnore]
    public BMDSite Ud
    {
        get
        {
            if (_Ud == null)
            {
                _Ud = BMDSites.Find(b => b.Region == Region.Forearm_UD);
            }
            return _Ud;
        }
    }
干杯,
布拉德

谢谢你的建议。。。仍然没有加载,但它确实让我想到直接检查响应-数据在查询的响应中(使用您的建议。包括在操作中,或原始的展开查询)。。。只是微风没有把它具体化为物体!?抱歉,如果我之前不清楚-客户端或服务器上没有显示错误。感谢您的建议。。。仍然没有加载,但它确实让我想到直接检查响应-数据在查询的响应中(使用您的建议。包括在操作中,或原始的展开查询)。。。只是微风没有把它具体化为物体!?抱歉,如果我之前不清楚-客户端或服务器上没有显示错误。