我有一個postgres數據庫並使用asp.net核心mvc(+ ef)。數據庫已正確創建。我有兩個表'Module'和'ModuleMenu'。我想獲得給定模塊的所有菜單,但是我一直未能創建linq查詢。NullReferenceException加入Postgres EF提供程序
形勢
型號: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; }
}
}
型號: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; }
}
}
查詢
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();
}
錯誤
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.
誰能幫我正確地創建查詢?
Wouter,請閱讀本幫助中心http://stackoverflow.com/help/tagging關於如何正確使用標籤以及爲什麼不強制他們進入問題標題的話題。而是使用標題以簡短的句子描述您的問題,然後人們可以從問題頁面更容易地猜出他們是否可以回答您的問題 – Tseng