Breeze JS with Entity Framework:在服务器上扩展实体的属性,并在客户端上提供它们

时间:2013-10-04 20:13:05

标签: javascript entity-framework-5 breeze single-page-application hottowel

我通过添加额外的属性从实体框架扩展实体: 示例:

public partial class Product
{
    public string DefaultProductCode { get; set; }

我在设置此属性时使用硬编码值进行测试,然后再将其返回到IQueryable<产品>在微风控制器中。当我使用浏览器调用我的breeze方法时,该属性在json代码中成功显示。

我正在尝试在网格中显示这个额外的属性,但我一直有这个错误:

Error retreiving data. Object doesn't support property or method 'defaultProductCode'

我可以通过在Product的构造函数中注册属性defaultProductCode来解决错误。例如:

        var Product = function () {
            this.defaultProductCode = ko.observable("");
        };
        metadataStore.registerEntityTypeCtor('Product', Product, productInitializer);

但问题是它始终显示构造函数的值,它永远不会显示来自服务器的值,即使我看到它已成功通过。

这是一个错误吗?有没有办法注册该额外属性,以便显示来自服务器的值?

1 个答案:

答案 0 :(得分:2)

我第二次看到PW-Kad建议How to extend Breeze MetaData for Unmapped Entity Property without KO。另请参阅this StackOverflow Q&A,它似乎可以解决您的使用案例。