1

創建方法:收到錯誤:「一個指定的包含路徑是無效的的EntityType場」不聲明導航屬性」

public List<Field> GetScheduleDetails() 
{  
    var schedulefields = DBcontextFactory.Context.Set<Field>).Include("ScheduleField").ToList(); 
} 

使用以上方法我試圖獲取所有加盟(場。 fieldid = schedulefield.fieldid)來自兩個表的記錄。字段表與schedulefield表相關。對不起,如果我不熟悉技術術語。

場模型:

public partial class Field : DOIEntity 
{ 

    public Field() 
    { 
     this.FilerResponses = new HashSet<FilerResponse>(); 
     this.ScheduleFields = new HashSet<ScheduleField>(); 
    } 

    public int FieldId { get; set; } 
    public string FieldDisplayName { get; set; } 
    public int FieldTypeId { get; set; } 
    public string HelpText { get; set; } 
    public Nullable<bool> OtherTextAllowed { get; set; } 
    public Nullable<int> ChoiceGroupId { get; set; } 

    public virtual FieldType FieldType { get; set; } 
    public virtual ICollection<FilerResponse> FilerResponses { get; set; } 
    public virtual ICollection<ScheduleField> ScheduleFields { get; set; } 
} 

ScheduleField型號:

public partial class ScheduleField 
{ 

    [Key] 
    public int ScheduleId { get; set; } 
    public int FieldId { get; set; } 
    public byte SortOrder { get; set; } 
    public Nullable<bool> IsMandatory { get; set; } 
    public Nullable<int> ParentFieldId { get; set; } 
    public Nullable<int> ParentChoiceId { get; set; } 

    public virtual Field Field { get; set; } 
    public virtual Schedule Schedule { get; set; } 
} 

當我打電話的方法,我得到這個錯誤:

A specified Include path is not valid. The EntityType 'WorldBank.DOI.Data.Field' does not declare a navigation property with the name 'ScheduleField'.

爲什麼會出現這個錯誤?

+4

你'Field'類沒有一個'ScheduleField'財產,而是它的一個集合聲明爲' ScheduleFields'。 –

+0

如果我添加公共虛擬ScheduleField ScheduleField {get; set;}將問題解決? – user2181707

+1

這取決於,你真的需要什麼? 'Field'中需要一個'ScheduleField'實例嗎?如果是,那麼你將如何處理'ScheduleField'的集合?或者,也許這就是你需要的:'DBcontextFactory.Context.Set ().Include(「ScheduleFields」)' –

回答

6

你有包含字符串中使用Field類的屬性名稱:

public List<Field> GetScheduleDetails() 
{  
    var schedulefields = DBcontextFactory.Context.Set<Field>).Include("ScheduleFields").ToList(); 
} 

這將渴望負載領域對象相關聯的ScheduleField對象。

請注意,您也可以加載許多級別。例如,如果你想急於負荷ScheduleField對象的安排以及你可以這樣做:

public List<Field> GetScheduleDetails() 
{  
    var schedulefields = DBcontextFactory.Context.Set<Field>).Include("ScheduleFields.Schedule").ToList(); 
} 
相關問題