js:返回的服务器元数据中缺少属性



看起来breeze没有在从服务器返回的元数据中包含一些属性。我在客户端使用breeze.js,在服务器上使用breeze-EF,无需进一步配置。这是我的对象

[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,版本=1.0.0.0,文化=中性,PublicKeyToken=null","关键":{"propertyRef":{"名称":" ID "}},"财产":({" name ": " ID ","类型":"电火花。弦"、"最大长度":"128"、"fixedLength":"假"、"unicode":"真正的"、"可空":"false"},{" name ": " COEMID ","类型":"电火花。弦"、"最大长度":"128"、"fixedLength":"假"、"unicode":"真正的"、"可空":"false"},{" name ": " COJPID ","类型":"电火花。弦"、"最大长度":"Max"、"fixedLength":"假"、"unicode":"真正的"、"可空":"false"},{" name ": " CORGID ","类型":"电火花。弦"、"最大长度":"Max"、"fixedLength":"假"、"unicode":"真正的"、"可空":"false"},{" name ": " CODPID ","类型":"电火花。弦"、"最大长度":"Max"、"fixedLength":"假"、"unicode":"真正的"、"可空":"false"},{" name ": " COEPISMAIN ","类型":"电火花。Int16"、"空":"false"}]"navigationProperty":{"名称":"COEM","关系":"自我。COEM_COEP"、"fromRole":"COEM_COEP_Target"、"toRole COEM_COEP_Source":}}

您可以清楚地看到属性"STARTDATE"one_answers"ENDDATE"(可为空的datetime)没有被包括在内。

这些属性没有被标记为[NotMapped]属性。它们应该包含在元数据中。我想不出这里会出什么差错。这些属性是我的MS SQL数据库中的表中的字段。

奇怪的是,我有其他具有STARTDATE Datetime属性的对象,它们在元数据中被正确返回。更重要的是:对象"COEP"是主-子-子关系,其中COEP是二级子节点。任何帮助,任何提示什么可能会出错将非常感激。由于

省略了STARTDATEENDDATEpublic访问修饰符。因此,这些属性在默认情况下是private不映射到表中,也不暴露在元数据中。很容易错过的东西(就像我在过去的半个小时里抓耳挠脑发现的那样)。

为什么COEPISMAIN既是[Required]又是可选的(short?)?

最新更新