Добрый день. Есть готовая база данных. Необходимо к ней сделать Web-приложение на ASP.NET MVC. Подключаю базу в режиме CodeFirst, но никак не получается связать две таблицы имеющие связь Один-к-одному. Таблицы следующие
Код | CREATE TABLE USERS ( ID_U INTEGER NOT NULL, ID_EMPLOYEE INTEGER, PW VARCHAR(250) DEFAULT '' ); ALTER TABLE USERS ADD CONSTRAINT PK_USERS PRIMARY KEY (ID_U); ALTER TABLE USERS ADD CONSTRAINT FK_USERS_1 FOREIGN KEY (ID_EMPLOYEE) REFERENCES EMPLOYEE (ID_EM) ON DELETE CASCADE;
CREATE TABLE EMPLOYEE ( ID_EM SMALLINT NOT NULL, LAST_NAME VARCHAR(50) DEFAULT '', FIRST_NAME VARCHAR(50) DEFAULT '', MIDDLE_NAME VARCHAR(50) DEFAULT '', ); ALTER TABLE EMPLOYEE ADD PRIMARY KEY (ID_EM);
|
Создаю следующие классы:
Код | [Table("USERS")] public class User { [Key] [Column("ID_U")] public int Id { get; set; }
[Column("PW")] [StringLength(250)] public string Password { get; set; }
[Column("ID_EMPLOYEE")] public int EmployeeId { get; set; }
public Employee Employee { get; set; } }
[Table("EMPLOYEE")] public class Employee { [Key] [Column("ID_EM")] public int EmployeeId { get; set; }
[Column("LAST_NAME")] [StringLength(250)] public string LastName { get; set; }
[Column("FIRST_NAME")] [StringLength(250)] public string FirstName { get; set; }
[Column("MIDDLE_NAME")] [StringLength(250)] public string MiddleName { get; set; } }
|
В DbContext прописываю
Код | public DbSet<User> Users { get; set; } public DbSet<Employee> Employees { get; set; }
|
В контроллере код
Код | private DataBaseContext db = new DataBaseContext();
public ActionResult Index() { foreach (User us in db.Users) { ViewBag.Message = us.Employee.FirstName; }
return View(); }
|
При считывании данных в классе User свойство Employee всегда null. Не пойму как правильно прописать связи, чтобы в User.Employee были данные. Надеюсь на вашу помощь и советы. |