Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> CodeFirst. Связь один к одному, CodeFirst. Связь один к одному 
V
    Опции темы
FMA
Дата 18.10.2015, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 30.4.2008

Репутация: нет
Всего: нет



Добрый день.
Есть готовая база данных. Необходимо к ней сделать Web-приложение на ASP.NET MVC. Подключаю базу в режиме CodeFirst, но никак не получается связать две таблицы имеющие связь Один-к-одному.
Таблицы следующие
Выделить всёкод SQL
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
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);


Создаю следующие классы:
Выделить всёРазвернуть кодкод C#
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
    [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 прописываю
Выделить всёкод C#
1:
2:
        public DbSet<User> Users get; set; }
        public DbSet<Employee> Employees get; set; }


В контроллере код
Выделить всёкод C#
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
        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 были данные.
Надеюсь на вашу помощь и советы.

Это сообщение отредактировал(а) FMA - 18.10.2015, 20:11
PM MAIL   Вверх
FMA
Дата 19.10.2015, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 30.4.2008

Репутация: нет
Всего: нет



Решил задачу.
Выделить всёкод C#
1:
2:
3:
4:
5:
        [Column("ID_EMPLOYEE")]
        public int EmployeeId get; set; }
        [ForeignKey("EmployeeId")]
        public virtual Employee Employee get; set; }

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0634 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.