作成されたメソッド:
public List<Field> GetScheduleDetails()
{
var schedulefields = DBcontextFactory.Context.Set<Field>).Include("ScheduleField").ToList();
}
上記の方法で、両方のテーブルからすべての結合された (field.fieldid=schedulefield.fieldid) レコードをフェッチしようとしています。フィールド テーブルは、スケジュールフィールド テーブルと関連付けられています。専門用語に詳しくなくてすみません。
フィールド モデル:
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; }
}
スケジュール フィールド モデル:
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; }
}
メソッドを呼び出すと、次のエラーが発生します。
指定されたインクルード パスが無効です。EntityType 'WorldBank.DOI.Data.Field' は、'ScheduleField' という名前のナビゲーション プロパティを宣言していません。
このエラーが発生するのはなぜですか?