2016-08-08 32 views
1

Ich habe gerade mit der Arbeit mit EF begonnen. Ich habe einfache Modelle Page und Related Pages.Fremdschlüssel "Die Eigenschaft X des Entitätstyps Y konnte nicht gefunden werden" Entity Framework Core

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

Dies ist in meinem 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); 
} 

Obwohl, wenn ich versuche Befehl auszuführen

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

Ich habe eine Ausnahme

InvalidOperationException: Die Eigenschaft ‚Page1ID 'auf Entitätstyp' Seite 'konnte nicht gefunden werden. Stellen Sie sicher, dass die Eigenschaft existiert und in das Modell aufgenommen wurde.

Antwort

2

Dies scheint ein Fehler in EF Core zu sein. Sie können Probleme unter https://github.com/aspnet/EntityFramework/issues ablegen.

Wenn für die Abfrage, was Sie versuchen die Menge aller Seiten ist, dass mindestens ein RelPages1 haben, dann eine LINQ-Abfrage, die nicht den gleichen Fehler hat und gibt das Ergebnis erwarten ist:

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

Wurde dieses Problem behoben? Ich stehe vor demselben Problem. –