2015-08-21 61 views
0

看起来breeze未能在服务器返回的元数据中包含一些属性。我在客户端使用breeze.js,而在服务器上使用breeze-EF而无需进一步配置。这是我的目标Breeze.js:返回的服务器元数据中缺少属性

[Table("COEP")] 
public class COEP : DataObject 
{ 
    public string ID { get; set; } 

    [Required] 
    public string COEMID { get; set; } 

    [Required] 
    public string COJPID { get; set; } 

    [Required] 
    public string CORGID { get; set; } 

    [Required] 
    public string CODPID { get; set; } 

    [Required] 
    public short? COEPISMAIN { get; set; } 

    DateTime? STARTDATE { get; set; } 

    DateTime? ENDDATE { get; set; } 

    [JsonIgnore] 
    public virtual COEM COEM { get; set; } 
} 

这里是从与呼叫服务器返回的元数据的一部分:xxxController.GetMetadata()(我只是把关于目标COEP的部分)

{“name”:“COEP”,“customannotation:ClrType”:“StampDev.Pro.v3.server.EndPoints.Comp.Data.COEP,StampDev.Pro.v3,Version = 1.0.0.0,Culture =中性,PublicKeyToken = null“, ”key“:{”propertyRef“:{”name“:”ID“}}, “property”:[ {“name”:“ID”,“type”:“Edm.String”,“maxLength”:“128”,“fixedLength”:“false”,“unicode”:“true “,”nullable“:”false“}, {”name“:”COEMID“,”type“:”Edm.String“,”maxLength“:”128“,”fixedLength“:”false“ unicode“:”true“,”nullable“:”false“}, {”name“:”COJPID“,”type“:”Edm.String“,”maxLength“:”Max“,”fixedLength“: “false”,“unicode”:“true”,“nullable”:“false”}, {“name”:“CORGID”,“type”:“Edm.String”,“maxLength”:“Max” ,“fixedLength”:“false”,“unicode”:“true”,“nullable”:“false”}, {“name”:“CODPID”,“type”:“Edm.String”,“maxLengt h“:”Max“,”fixedLength“:”false“,”unicode“:”true“,”nullable“:”false“}, {”name“:”COEPISMAIN“,”type“ .Int16“,”nullable“:”false“}] ”navigationProperty“:{”name“:”COEM“,”relationship“:”Self.COEM_COEP“,”fromRole“:”COEM_COEP_Target“,”toRole“ COEM_COEP_Source“}}

您可以清楚地看到属性”STARTDATE“和”ENDDATE“(可空的日期时间)没有包括在内。

这些属性未用[NotMapped]属性标记。它们应该包含在元数据中。我不能在这里发生什么问题。这些属性是我的MS SQL数据库中表中的字段。

奇怪的是我有STARTDATE日期时间属性的其他对象,它们正确返回元数据中。关于更多的事情:对象“COEP”是 主子女关系的第二级子女,其中COEP是二级子女。任何帮助,任何暗示什么可能出错将非常感激。谢谢

回答

0

您省略了和ENDDATE的访问修饰符。因此,这些属性默认为私有未映射到该表,并且未在元数据中公开。容易错过的事情(正如我在过去的半小时里发现的那样)。

为什么COEPISMAIN均为[Required]和可选(short?)?

+0

非常感谢@ward。我很匆忙,在最后期限之后,我没有看到它。还需要和短?是一个错误(复制粘贴...) – TheSoul