在Breeze(entityframework,knockout)中,查询完成后如何访问原始实体
我希望将有关实体的一些伪信息传递给客户机,并使其可用于我的实体。据我所知,只有实体的映射属性在查询执行后才可用。我是否缺少一个钩子,或者可以通过其他方式获取从服务器获取给定实体的API调用的原始结果 e、 g:在Breeze(entityframework,knockout)中,查询完成后如何访问原始实体,breeze,Breeze,我希望将有关实体的一些伪信息传递给客户机,并使其可用于我的实体。据我所知,只有实体的映射属性在查询执行后才可用。我是否缺少一个钩子,或者可以通过其他方式获取从服务器获取给定实体的API调用的原始结果 e、 g: server: class Patient { [NotMapped] public string Name => First + " " + Last; public string First {get;set;} public string
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根据查询结果创建患者实体时,它将填充unmappedname
属性
请参阅上的Breeze文档。谢谢Steve。工作原理如所述。