2 / 2 / 0
Регистрация: 05.12.2014
Сообщений: 39
1

Нет данных в Контроллере

20.05.2016, 12:34. Показов 656. Ответов 1
Метки нет (Все метки)

Есть две модели
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
  public class Position
    {
        public int Id { get; set; }
 
        public string Name { get; set; }
 
        public List<Employee> Employees { get; set; }
 
        public Position()
        {
            Employees = new List<Employee>();
        }
    }
и
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    public class Employee
    {
        public int Id { get; set; }
 
        public string Name { get; set; }
 
        public string LastName { get; set; }
 
        public string MiddleName { get; set; }
 
        public List<Position> Positions { get; set; }   
 
        public Employee()
        {
            Positions = new List<Position>();
        }
    }
Контекст -
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
public class ApplicationDbContext : DbContext
    {
        public ApplicationDbContext() : base("DefaultConnection")
        {
 
        }
 
        public DbSet<Tasks> Task { get; set; }
        public DbSet<Employee> Employee { get; set; }
        public DbSet<Position> Position { get; set; }
        public DbSet<Projects> Projects { get; set; }
        public DbSet<Status> status { get; set; }
    }
Инициализация -
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
  public class ApplicatoinDbInitializer : DropCreateDatabaseIfModelChanges<ApplicationDbContext>
    {
        protected override void Seed(ApplicationDbContext context)
        {
            Employee emp1 = new Employee { Name = "Иван", MiddleName = "Иванович", LastName = "Иванов" };
            Employee emp2 = new Employee { Name = "Петр", LastName = "Петров", MiddleName = "Петрович" };
            Employee emp3 = new Employee { Name = "Сергей", MiddleName = "Сергеевич", LastName = "Сидорович" };
            context.Employee.AddRange(new List<Employee> { emp1, emp2, emp3 });
 
            context.SaveChanges();
 
            Position pos1 = new Position { Name = "Грузчик" };
            pos1.Employees.Add(emp3);      
            pos1.Employees.Add(emp2);      
                                           
            Position pos2 = new Position { Name = "Дворник" };
            pos2.Employees.Add(emp1);
            pos2.Employees.Add(emp2);
 
            context.Position.Add(pos1);
            context.Position.Add(pos2);
 
            context.SaveChanges();
 
            base.Seed(context);
        }
    }
Контроллер -
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class HomeController : Controller
    {
        ApplicationDbContext _context;
 
        public HomeController()
        {
            _context = new ApplicationDbContext();
        }
 
        public ActionResult Index()
        {
            var model = _context.Employee.ToList();         
            return View(model);
        }
 
    }
Инициализируются все данные, и Employee и Position нормально.
Проблема в том, что в контроллере, загружаются не все данные. К, примеру в строке var model = _context.Employee.ToList();
return View(model); Есть поля Name, LastName,Id,MiddleName, но лист с профессией пуст, хотя в инициализаторе он заполнен
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.05.2016, 12:34
Ответы с готовыми решениями:

Возврат данных в контроллере
Добрый день. Такой вопрос: как сделать так чтобы в методе контроллера при определенном условии...

Получение POST-данных в контроллере
Доброго времени суток, прохожие и спецы! Использую я asp.net core 2.2, ef6 и т.д. Я создал...

Организация загрузки данных в post контроллере из разных источников
Нужна помощь в таком вопросе. Возморжно ли расширить спектр способов передачи в post данных? ...

Загрузка изображения для профиля юзера в одном контроллере с загрузкой данных юзера
Алгоритм таков: 1. При добавлении клиента необходимо загрузить фото 2. Загружаю 3. Заполняю...

1
3033 / 2183 / 633
Регистрация: 02.08.2011
Сообщений: 5,996
20.05.2016, 21:31 2
Цитата Сообщение от Deanon Посмотреть сообщение
но лист с профессией пуст, хотя в инициализаторе он заполнен
У вас navigation property определен без ключевого слова virtual - то есть выключен lazy load. Поэтому данные можно загрузить только явно указав, что вы хотите загрузить эти сущности, используя Eager Loading (Include).
C#
1
2
3
...
var model = _context.Employee.Include("Positions").ToList();         
return View(model);
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.05.2016, 21:31
Помогаю со студенческими работами здесь

Реализовывал односвязный список. Выдает ошибку: "синтаксическая ошибка:ожидался токен "<Нет данных>,а не <нет данных>""
#include&lt;iostream&gt; #include&lt;string&gt; #include &lt;stdio.h&gt; using namespace std; template&lt;typename...

Как сделать что если нет данных в таблице, чтобы шаблон этой самой таблице не выводился а писалось что данных в таблице нет
В общем проблема такая, есть админка где выводится список жалоб которые без ответа, когда они есть...

Если нет в базу вывести нет данных
Есть запрос , нужно вернуть ответ если нет элимента в базе . function get_model_key ($go) { ...

Как при открытии или печати отчета вывести "Нет данных", если в источнике нет записей?
Как при открытии или печати отчета вывести 'НЕТ ДАННЫХ' если в источнике нет записей ? Если нет...

Добавление данных в таблицу из полей формы access, если таких данных в таблице нет
Может быть я всех достал уже. Но к сожалению я еще только учусь, и иногда возникают проблемы. ...

NoMethodError в контроллере
Привет! Ситуация следующая.. 1.создаю проект в руби он реилс: $ rails new name ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru