Ich habe eine Postgres-Datenbank und mit asp.net Core MVC (+ ef). Die Datenbank wird korrekt erstellt. Ich habe zwei Tabellen 'Module' und 'ModuleMenu'. Ich möchte alle Menüs für ein bestimmtes Modul bekommen, aber ich kann die linq-Abfrage nicht erstellen.NullReferenceException bei Join mit Postgres EF Provider
Situation
Modell: Module.cs
namespace project.Model
{
public class Module
{
[Required]
public string ID { get; set; }
[Required]
public string Name { get; set; }
[Required]
public string Description { get; set; }
}
}
Modell: ModuleMenu.cs
namespace project.Models
{
public class ModuleMenu
{
[Required]
public string ID { get; set; }
public int ModuleID { get; set; }
[Required]
public string Title { get; set; }
[ForeignKey("ModuleID")]
public virtual Module Module { get; set; }
}
}
ApplicationDbContext.cs
namespace project.Data
{
public class ApplicationDbContext
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
}
public DbSet<Module> Modules { get; set; }
public DbSet<ModuleMenu> ModuleMenus { get; set; }
}
}
Abfrage
public List<ModuleMenu> GetModuleMenus(){
var query = from m in _dbContext.ModuleMenus
join mod in _dbContext.Modules on
m.ModuleID equals mod.ID
select m;
return query.ToList();
}
Fehler
fail: Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[0]
An exception was thrown attempting to execute the error handler.
System.NullReferenceException: Object reference not set to an instance of an object.
Kann mir jemand helfen, richtig die Abfrage zu erstellen?
Wouter, lesen Sie in diesem Hilfe http://stackoverflow.com/help/tagging Thema auf, wie man richtig Tags und warum sie nicht in der Frage Titel zu erzwingen. Verwenden Sie den Titel eher, um Ihr Problem in einem kurzen Satz zu beschreiben, dann wird es für die Leute einfacher sein, von der Frage-Seite zu erraten, ob sie eine Antwort auf Sie haben oder nicht – Tseng