Добрый день! Подскажите пожалуйста, чисто теоретически, возможно ли сделать загрузку множества связных с сущностью данных без использования связующей сущности?
Получилось так, что есть проект с БД на mysql и вносить изменения в структуру БД я не могу. :(
У меня есть Сотрудник, есть Должности сотрудника и есть сканы приказов о назначении на должность сотрудника. Для связи Сотрудника и Должностью сотрудника – используется внешний ключ. А между Должностью и Сканом приказа – связи по внешнему ключу нет. Есть просто номер, который соответствует id в таблице Скана.
И почему-то не получается эту связь сделать не через Аннотации не через Fluent API.
При построении модели, данные о приложенном Скане не подгружаются.
Прошу Вашей помощи.
public class Employee
{
[Key, ForeignKey("employee")]
public long Id { get; set; }
public string FIO {get; set;}
[ForeignKey("position")]
public Position Position { get; set; }
public DateTime Bithday { get; set; }
}
public class Position
{
[Key]
public long Id { get; set; }
[ForeignKey("employee ")]
public Employee Employee { get; set; }
public AttachedFile File { get; set; }
// UPD
public string PosName { get; set; }
}
public class AttachedFile
{
[Key]
public long Id { get; set; }
public string FileName { get; set; }
}
Загружаю данные для передачи в представление:
public IActionResult Details(int id)
{
var model = db.employees
.Include(ep => ep.Position)
.FirstOrDefault(j => j.Id == id)
;
return View(model);
}
Сослаться на загрузку данных по сущности AttachedFile не получается. Получаю исключение что ссылка не указывает на экземпляр объекта.
Я использую ASP.NET Core 2.1 + EF
Спасибо!
UPD!
employees
---------------------------------------------------
| id | FIO | position | Bithday |
1 Тестер О.О. 2 01.01.2010
2 Тестеров Д.Д 3 02.06.2000
positions
--------------------------
id employees file posname
1 1 1 Менеджер
2 1 3 Ст.Менеджер
3 2 2 Бухгалтер
4 2 4 Ст.Бухгалтер
files
-----------------------------
id filename
1 Приказ №1.docx
2 Приказ №341.docx
3 Приказ №3.docx
4 Приказ №167.docx
Необходимый вариант отображения данных.
Таблица "Карьерный рост" сотрудника Тестер О.О.
Должность Скан приказа
Менеджер Приказ №1.docx
Ст.Менеджер Приказ №3.docx