2015-08-21 60 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