1

我正在构建一个 SPA 并使用 BreezeJS 进行数据管理。现在我希望能够在我的模型类上设置数据库中不存在的已处理数据并将其发送到客户端。问题是微风也忽略了这些属性。

public class MyModel{
     public int Id{get; set;}
     public string Name{get; set;}
     public string ProcessedData{get; set;}
}
...
Ignore(model=> model.ProcessedData);

我意识到 Breeze 使用与我的数据上下文相同的元数据,但应该有一种方法可以覆盖它。

被忽略的属性由控制器作为 json 发送,这只是让微风按照我的需要解析它的问题。

4

1 回答 1

1

我还没有确认这一点,但我认为如果您确定数据是从服务器返回的,那么您可以将具有正确名称的“未映射”属性添加到 Breeze 客户端,它也会实现这些属性。请参阅此处的“未映射”讨论:http ://www.breezejs.com/documentation/extending-entities 。

或者你可以在元数据已经返回之后尝试这个(我还没有实际测试过)。

var dp = new breeze.DataProperty( {
    nameOnServer: "ProcessedData", 
    dataType: "String",
    isUnmapped: true
});

myEntityManager.metadataStore.getEntityType("MyModel").addProperty(dp);

然后尝试您的查询。

注意:在将 EntityType 本身添加到 MetadataStore 之后,只能将“未映射”属性添加到 EntityType。

于 2013-05-08T16:06:04.963 回答