Reputation: 251
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
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