在Breeze(entityframework,knockout)中,查询完成后如何访问原始实体

在Breeze(entityframework,knockout)中,查询完成后如何访问原始实体,breeze,Breeze,我希望将有关实体的一些伪信息传递给客户机,并使其可用于我的实体。据我所知,只有实体的映射属性在查询执行后才可用。我是否缺少一个钩子,或者可以通过其他方式获取从服务器获取给定实体的API调用的原始结果 e、 g: server: class Patient { [NotMapped] public string Name => First + " " + Last; public string First {get;set;} public string

我希望将有关实体的一些伪信息传递给客户机,并使其可用于我的实体。据我所知,只有实体的映射属性在查询执行后才可用。我是否缺少一个钩子,或者可以通过其他方式获取从服务器获取给定实体的API调用的原始结果

e、 g:

server: 

class Patient
{
    [NotMapped]
    public string Name => First + " " + Last;
    public string First {get;set;}
    public string Last {get;set;}
}

client:

this._executeQuery(breeze.EntityQuery.from('api/Patient/1'))                       
  .then(function (data) {
    var data = data[0];
    // data = PatientCtor with first and last properties only
});

我希望data.name在客户端中可用。它随查询一起发送到客户端,但不会在查询的另一端显示。

您可以将属性添加到实体的客户端定义中,Breeze将为您填充这些属性。可以通过为实体注册自定义构造函数来完成此操作:

function Patient() {
    this.name = "";
}
var em = new breeze.EntityManager();
em.metadataStore.registerEntityTypeCtor("Patient", Patient);
请注意,您需要在第一次查询之前执行此操作

然后,当breeze根据查询结果创建患者实体时,它将填充unmapped
name
属性


请参阅上的Breeze文档。

谢谢Steve。工作原理如所述。