外部キー "エンティティタイプYのプロパティXが見つかりませんでした" Entity Frameworkコア

c# entity-framework entity-framework-core foreign-keys

質問

私はEFで作業を始めました。私は単純なモデルのPageRelated Pagesを持っています。

public class Page
{
    public int ID { get; set; }
    [Required]
    public string UrlName { get; set; }
    [Required]
    public string Title { get; set; }
    public List<RelatedPages> RelPages1 { get; set; }
    public List<RelatedPages> RelPages2 { get; set; }
}
public class RelatedPages
{
    public int ID { get; set; }
    public int Page1ID { get; set; }
    public Page Page1 { get; set; }
    public int Page2ID { get; set; }
    public Page Page2 { get; set; }
}

これは私のDbContextにあります:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Page>().HasIndex(x => x.UrlName).IsUnique();

    modelBuilder.Entity<RelatedPages>().HasOne(x => x.Page1).WithMany(x => x.RelPages1).HasForeignKey(x => x.Page1ID);
    modelBuilder.Entity<RelatedPages>().HasOne(x => x.Page2).WithMany(x => x.RelPages2).HasForeignKey(x => x.Page2ID);
}

コマンドを実行しようとすると

dbContext.Pages.Where(x => x.RelPages1 != null);

私には例外があります

InvalidOperationException:エンティティタイプ 'Page'のプロパティ 'Page1ID'が見つかりませんでした。プロパティが存在し、モデルに含まれていることを確認します。

人気のある回答

これはEFコアのバグであるようです。 https://github.com/aspnet/EntityFramework/issuesで問題を提出できます。

クエリしようとしているものが少なくとも1つのRelPages1を持つすべてのページのセットである場合、同じバグを持たず、期待結果を返すLINQクエリは次のようになります。

dbContext.Pages.Where(x => x.RelPages1.Count() > 0)


Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ