1

Я новичок в платформе Entity Framework, поэтому не знаю, выполняю ли я это правильно, или это ошибка в новом ядре Entity Framework Core. Мне нужно сделать класс для связанных страниц, например, 1 страница связана с другой. У меня есть класс PageВнешний ключ NullReferenceExcepetion в Entity Framework Core

public class Page 
{ 
    public int ID { get; set; } 
    public string UrlName { get; set; } 
    [Required] 
    public string Title { get; set; } 
    [Required] 
    public string Description { get; set; } 
    public string Content { get; set; } 
    public List<RelatedPages> RelPages1 { get; set; } 
    public List<RelatedPages> RelPages2 { get; set; } 
} 

И это мой класс для RelatedPages:

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; } 
} 

Я хочу, чтобы получить экземпляр Page из RelatedPages и, наоборот, как context.RelatedPages.Single(r => r.ID==1).Page2.UrlName хотя я NullReferenceException. Это в моем OnModelCreating в DbContext:

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); 

ответ

1

Попробуйте включить Page2.

Изменение context.RelatedPages.Single(r => r.ID==1).Page2.UrlName - context.RelatedPages.Include(x=>x.Page2).Single(r => r.ID==1).Page2.UrlName

Смежные вопросы