私はpostgresデータベースを持ち、asp.net core mvc(+ ef)を使用しています。データベースが正しく作成されます。私は2つのテーブル 'Module'と 'ModuleMenu'を持っています。私は与えられたモジュールのすべてのメニューを取得したいと思いますが、私はlinqクエリを作成することに失敗し続けます。Postgres EFプロバイダとの結合でNullReferenceExceptionが発生しました
状況
モデル: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.
誰も私が正しくクエリを作成するのに役立つことはできますか?
タグを正しく使用する方法と質問タイトルに強制しない理由については、ヘルプセンターhttp://stackoverflow.com/help/taggingを参照してください。あなたの問題を短期間で記述するためにタイトルを使用するのではなく、質問ページからあなたに答えがあるかどうかを推測するのが簡単になります – Tseng