Oleksii Kryzh
Oleksii Kryzh

Reputation: 251

Foreign key NullReferenceExcepetion in Entity Framework Core

I am new with Entity Framework so I don't know if I am doing right or this is a bug in new Entity Framework Core. I need to do a class for related pages like 1 page is related to another one. I have class Page

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

And this is my class for 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; }
}

I want to get the Page instance from RelatedPages and conversely, like context.RelatedPages.Single(r => r.ID==1).Page2.UrlName though I have NullReferenceException. This is in my OnModelCreating in 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);

Upvotes: 1

Views: 75

Answers (1)

adem caglin
adem caglin

Reputation: 24123

Try to include Page2.

Change context.RelatedPages.Single(r => r.ID==1).Page2.UrlName to context.RelatedPages.Include(x=>x.Page2).Single(r => r.ID==1).Page2.UrlName

Upvotes: 1

Related Questions