Я начинающий в ASP.NET Core MVC.
Решил для практики написать сайт для гостиницы. В любой гостинице есть номера, а номера делятся по классу комфорта (люкс, полулюкс, улучшенный и т.д.). В папке Models я описал модели для номеров под одним общим классом RoomModel
:
public class RoomModel
{
[System.ComponentModel.DataAnnotations.Key]
public int Id { get; set; }
public string RoomName { get; set; }
}
Подключился к локальной бд MS SQL Server, добавил в сервисы контекст бд - всё как положено. Контекст получаю в контроллере:
public class AdminController : Controller
{
public AdminController(RoomContext context)
{
DBAdmin.SetContext(context); // Передаю контекст в специальный класс для работы с БД
}
public IActionResult Index()
{
return View(DBAdmin.SelectAllData(RoomsType.Lux)); // Получаю данные из определённой таблицы (с люкс номерами) в виде списка List<RoomModel> и отдаю в представление
}
}
Контекст БД RoomContext
:
public class RoomContext : DbContext
{
public DbSet<RoomModel> LuxRooms { get; set; } // таблица для люксов
public DbSet<RoomModel> JuniorSuiteRooms { get; set; } // таблица для номеров с классом "Полулюкс"
public RoomContext(DbContextOptions<RoomContext> options) : base(options)
{
Database.EnsureCreated();
}
}
Моя БД:
Для работы с БД я решил сделать отдельный класс DBAdmin
:
public static class DBAdmin
{
private static RoomContext context;
private static Dictionary<RoomsType, DbSet<RoomModel>> roomsTables = new Dictionary<RoomsType, DbSet<RoomModel>>(); //с помощью этого списка я проверяю входящий тип номера (люкс или полулюкс) с помощью перечисления типов номеров и выдаю соответствующую таблицу
public static void SetContext(RoomContext cont)
{
context = cont;
roomsTables.Add(RoomsType.Lux, context.LuxRooms);
roomsTables.Add(RoomsType.JuniorSuite, context.JuniorSuiteRooms);
}
public static List<RoomModel> SelectAllData(RoomsType rtype) // rtype просто содержит одно из значение enum RoomsType, с которым будет сопоставляться нужная таблица
{
var rooms = roomsTables[rtype];
return rooms.ToList(); // Возвращаю все значения таблицы в виде списка
}
}
В чём у меня проблема - у меня возникает следующая ошибка: System.Data.SqlClient.SqlException: "Invalid object name 'RoomModel'
. Я так понимаю, список roomsTables возвратил таблицу с именем RoomModel
, которой у меня нет и не должно быть. Почему так?
P.S. Если убрать из контекста RoomContext
таблицу DbSet<RoomModel> JuniorSuitRooms
или LuxRooms
, то всё заработает.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Я пытаюсь подключиться к базе данных, используя Entity Framework, но получаю такую ошибку:
возникла проблема с вращение изображения в pictureBoxУ меня есть изображение и я вращаю его в форме (угол вращения задаю с помощью trackbara), хочу...