7

我们正在向服务器上的对象添加其他属性,这些属性在数据库中没有跟踪。数据被返回给客户端,但微风实现的对象没有它作为属性。我们如何将属性添加到我们返回到微风的对象中,但不将它们映射到我们存储数据的数据库中?

示例:小部件类属性 A - 映射到数据库属性 B - 具有 [NotMapped] 属性,因此它不会存储在数据库中。它是由服务器动态计算的。

当我们在客户端获取对象时,我们得到: Widget Class = { Property A: ko.observable(Value for A) }

缺少属性 B。

当我们查看服务器返回的 json 时,我们看到:

小部件类 = { 属性 A:A 的值,属性 B:B 的值}

4

2 回答 2

4

具有 NotMapped 属性的属性不是 EFContextProvider 生成的 MetaData 的一部分,因此这些属性在客户端微风实体中将不可用。但是在 js 中,您可以扩展客户端实体并将属性添加到 entityType 自己(设置初始值)。这将确保在从服务器检索 json 对象时正确设置属性的值。

http://www.breezejs.com/documentation/extending-entities

于 2013-08-11T06:06:05.447 回答
0

这听起来像是 Ward Bell 提到的——也许该属性有一个空值,并且默认情况下 Breeze 不会返回它。

请查看添加此处提到的自定义轻量配置类,以调整在 Json 中返回空值的方式。只需将此类添加到您的 Web Api 项目中,就意味着 Breeze 会自动查找并配置它。

http://www.breezejs.com/documentation/web-api-controller

于 2013-07-24T14:16:13.360 回答