0
私はASP.NET Coreを初めて使用しており、EntityFramework Coreとの基本的な関係を設定しようとしています。 WebPageクラスと1:Mの関係を持つNavigationCategoryクラスがあります。関係は私のDB(それは外来のキーを持っています)によって理解されますが、WebPageをリポジトリから取得するときにNavigationCategoryIdが設定されていてもNavigationCategoryはありません。ASP.NETコアの関係はデータベースにありますが、取得されません。
public class WebPage : BaseEntity
{
private string _route;
public string Title { get; set; }
public string Body { get; set; }
[ForeignKey("NavigationCategory")]
public long NavigationCategoryId { get; set; }
public NavigationCategory NavigationCategory { get; set; }
public WebPage()
{
}
}
public class NavigationCategory : BaseEntity
{
public string Title { get; set; }
public IEnumerable<WebPage> WebPages { get; set; }
public NavigationCategory()
{
}
}
これは、単純なBaseEntityです:
public class BaseEntity
{
public long Id { get; set; }
}
これは私のDBのコンテキストである:
あなたが明示的にあなたがEFコアを使用してエンティティをフェッチするとき含ましたい任意のナビゲーションプロパティを含める必要がpublic class AppDataContext : DbContext
{
public DbSet<Employee> Employees { get; set; }
public DbSet<KinderClass> KinderClasses { get; set; }
public DbSet<Feed> Feeds { get; set; }
public DbSet<NavigationCategory> NavigationCategories { get; set; }
public DbSet<WebPage> WebPages { get; set; }
public AppDataContext(DbContextOptions<AppDataContext> options) : base(options)
{
Database.EnsureCreated();
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<WebPage>()
.HasOne(wp => wp.NavigationCategory)
.WithMany(c => c.WebPages)
.HasForeignKey(wp => wp.NavigationCategoryId);
}
}
[documentation](https://docs.microsoft.com/en-us/ef/core/querying/related-data)をお読みください。レイジーローディングはまだサポートされていません。関連するデータを明示的または熱心に( 'Include' /' ThenInclude'を使って)持たなければなりません。 –
ああありがとう:) –