У меня есть основной проект .net и я хочу подключить БД с ef. Ниже код моего контекста БД.
public class YTContext:DbContext
{
public YTContext(DbContextOptions<YTContext> options) : base(options) { }
//protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
//{
// optionsBuilder.UseMySql(@"Server=localhost;Database=kariyer_portal;Uid=root;Pwd=1234;");
//}
public DbSet<Student> Students { get; set; }
public DbSet<University> Universities { get; set; }
public DbSet<Bolum> Bolums { get; set; }
public DbSet<Admin> Admins { get; set; }
public DbSet<Announcement> Announcements { get; set; }
}
В Startup.class я написал соединение.
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<ITest, MyConfig>();
services.AddMvc();
services.AddMvc().AddJsonOptions( options => options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore );
services.AddDbContext<YTContext>(options => options.UseMySql(Configuration.GetConnectionString("MySqlCon")));
}
В моем классе репозитория я написал ниже.
public class StudentRepository
{
private readonly YTContext _db;
public StudentRepository(YTContext context)
{
_db = context;
}
public List<Student> GetStudents(int page, int limit = 8, string query = null)
{
try
{
var skip = (page - 1) * limit;
var students = _db.Students.Where(x => query == null || x.Name.Contains(query) || x.Surname.Contains(query) || x.University.Name.Contains(query) || x.Bolum.Name.Contains(query))
.Include(x=>x.Bolum).Include(x=>x.University)
.Skip(skip).Take(limit).ToList();
return students;
}
catch (Exception ex)
{
return null;
}
}
}
Моя проблема в том, что я не могу добраться до этого класса из кода контроллера ниже.
public class StudentController : Controller
{
public StudentRepository repo;
[HttpGet]
public IActionResult List()
{
var students = repo.GetStudents(1, 6,null);
return View(students);
}
[HttpPost]
public IActionResult Paginate(Paginate paginate)
{
var students = repo.GetStudents(paginate.page, paginate.limit,paginate.query);
return Json(new {status = 200, student = students});
}
}
public StudentRepository repo;
Приведенный выше код возвращает null
в контроллере. Как я могу достичь этого класса с контроллера?