Breeze 某些对象没有具体化(但处于查询响应中)-继承问题?

Breeze 某些对象没有具体化(但处于查询响应中)-继承问题?,breeze,Breeze,我刚刚在我的查询中添加了第四层扩展,即: .expand("..., ScanDates.Printouts.BMDSites, ..."); 我发现,尽管数据在响应中返回,但它并没有填充“Printouts”下面的对象(即patient.ScanDates.Printouts.bmdsite是一个空数组,尽管响应中返回了几个元素) 我已经更改了控制器操作上的MaxExpansionDepth,并且在控制台或服务器端没有出现错误。我还通过单独查询BMDSite对象成功地填充了这些

我刚刚在我的查询中添加了第四层扩展,即:

       .expand("..., ScanDates.Printouts.BMDSites, ...");
我发现,尽管数据在响应中返回,但它并没有填充“Printouts”下面的对象(即patient.ScanDates.Printouts.bmdsite是一个空数组,尽管响应中返回了几个元素)

我已经更改了控制器操作上的MaxExpansionDepth,并且在控制台或服务器端没有出现错误。我还通过单独查询BMDSite对象成功地填充了这些对象,但这意味着要返回10到20次服务器。。。不理想

编辑:我刚刚尝试了几个其他查询,似乎即使我只是进行一次扩展(即:.expand(“BMDSites”)),也会出现同样的问题-数据正在响应,但没有具体化为实体。当我只查询BMDSite时(比如针对特定的打印输出),数组被正确地填充和具体化

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

非常感谢你的建议!
-Brad

首先,我要确保您正在执行的“扩展”实际上是有效的,方法是使用“Include”在服务器上尝试完全相同的查询。如果失败了,那么问题很可能出在您的模型上。Breeze的“扩展成为EF”包括


如果查询在纯EF中工作,那么您能否详细说明模型中的相关属性以及继承层次结构的外观,以便我们可以尝试复制您的问题

看来它毕竟与继承无关。。。在为Jay创建一个简化模型时,我当然发现它工作得很好。重新添加我认为不相关的功能后,我最终打破了它,并通过添加一些[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列表再次没有填充(编辑-更具体地说,任何被未映射属性触及的BMDSite都被排除在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;
        }
    }
干杯,
布拉德

非常感谢杰伊的回复。在服务器上执行Expans as Includes工作得很好,因此我开始创建一个简化模型来发布/复制该问题——这当然工作得很好。我继续添加功能(我认为不相关),直到我再次打破它。原来是打印输出对象上的一些[NotMapping]属性。解决方案是在EF模型中添加对JSON.net的引用,并在[NotMapped]之外添加[JsonIgnore]。我将在下面发布更多细节,以防其他人遇到同样的情况。再次感谢你的时间+辛勤工作-爱的微风-任何额外的细节都很好,请将此问题标记为已回答,以便其他人知道这是可以解决的。谢谢。