Я получаю исключение nullreferenceexception в методе моего класса репозитория, когда я пытаюсь получить все записи модели, я читал об этом исключении и думаю, что понимаю его, но не понимаю, почему это происходит в моем коде.
У меня есть эта модель:
public class Post
{
[Key]
public int Id { get; set; }
public string Title { get; set; } = "";
public string Body { get; set; } = "";
public DateTime? Created { get; set; } = DateTime.Now;
}
это мой контекст:
public class AppDbContext : DbContext
{
public AppDbContext(DbContextOptions options) : base(options) { }
public DbSet<Post> Posts { get; set; }
}
Метод GetAllPost () в моем класс репозитория:
public async Task<List<Post>> GetAllPost()
{
var listOfPost = _context.Posts;//here is where the exception is thrown
return await listOfPost.ToListAsync();
}
Это весь мой класс репозитория:
public class Repository : IRepository
{
private readonly AppDbContext _context;
public Repository(AppDbContext context) {
_context = context;
}
public async Task AddPost(Post post)
{
await _context.Posts.AddAsync(post);
await _context.SaveChangesAsync();
}
public async Task<List<Post>> GetAllPost()
{
var listOfPost = _context.Posts;
return await listOfPost.ToListAsync();
}
public async Task<Post> GetPost(int id)
{
return await _context.Posts.FirstOrDefaultAsync(x=> x.Id == id);
}
public async Task RemovePost(Post post)
{
_context.Remove(post);
await _context.SaveChangesAsync();
}
public async Task UpdatePost(Post post)
{
_context.Posts.Update(post);
await _context.SaveChangesAsync();
}
}
, а это мой метод ConfigureService (я, кстати, использую postgres):
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddEntityFrameworkNpgsql().AddDbContext<AppDbContext>(
x => x.UseNpgsql(
Configuration.GetConnectionString("DefaultConnection")
)
);
services.AddTransient<IRepository, Repository>();
}
Моя база данных создана с миграциями и заполнена