Ссылка DbContext в новом контроллере MVC, который был добавлен в Razor Pages - PullRequest
0 голосов
/ 14 июня 2019

У меня было чистое приложение .NET Core 2.2 Razor Pages без модулей MVC.Затем я добавил папку Controller, папку View и использовал папку Models, которая у меня уже была.

Я пытаюсь сослаться на свою базу данных в новом Controller, но не могу получить синтаксис.Вот мой рабочий файл страницы курса .cs с рабочим DbContext вверху:

namespace OESAC.Pages.Courses
{
    public class IndexModel : PageModel
    {
        public readonly MyDbContext _context;
        public IndexModel(MyDbContext context)
        {
            _context = context;
        }

Ниже приведена верхняя часть моего кода контроллера MVC, который, как мне показалось, я выяснил, но получаю ошибку.

System.NullReferenceException: 'Ссылка на объект не установлена ​​для экземпляра объекта.'_configuration is null.

Последние 2 строки - это то место, где я получаю сообщение об ошибке (сохранить изменения).Обычные управляемые данными Razor Pages работают с db.SaveChanges, потому что у меня правильный синтаксис для объявления _context.

namespace OESAC.Controllers
{
    public class HomeController : Controller
    {

        MyDbContext db = new  MyDbContext();


 public ActionResult StartTransaction(string oesacID, string fee)
        {
            var model = new Models.PayPalTransactions();

            string strToday = DateTime.Today.ToString();

            model.TransactionDate = DateTime.Parse(strToday);
            model.RecordCreated = DateTime.Parse(strToday);
            model.CourseID = 4444;
            model.SponsorID = 3333;
            model.AmountCharged = 1;

            //INSERT TRANSACTION ROW IN TRANSACTION TABLE

           db.PayPalTransactions.Add(model);
           db.SaveChanges();

1 Ответ

1 голос
/ 14 июня 2019

Вы также можете использовать внедрение зависимостей в контроллерах.

public class HomeController : Controller
{
    private readonly MyDbContext _context;

    public HomeController(MyDbContext context)
    {
        _context = context;
    }
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...