Я пытаюсь выяснить, как я могу сделать объект таблицы мостов, используемый для отношений многие ко многим, прозрачным для моей модели.Я использую EF База данных сначала .
Обсуждаемые таблицы ... (упрощенно)
Report
- ReportId INT PK
- ReportName VARCHAR(50)
Group
- GroupId INT PK
- GroupName VARCHAR(50)
ReportGroup
- ReportId INT PK
- GroupId INT PK
Структура текущего класса ... (упрощенно)
public class Report
{
public int ReportId { get; set; }
public string ReportName { get; set; }
public IList<ReportGroup> ReportGroups { get; set; }
}
public class Group
{
public int GroupId { get; set; }
public string GroupName { get; set; }
public IList<ReportGroup> ReportGroups { get; set; }
}
public class ReportGroup
{
public int ReportId { get; set; }
public Report Report { get; set; }
public int GroupId { get; set; }
public Group Group { get; set; }
}
Чтобы использовать группы, к которым принадлежит отчет, нужно что-то вроде этого ...
// Getting a report's groups
var report = this.ReportService.GetReportById(123456);
var groups = report.ReportGroups.Select(x => x.Group).ToList();
Это не совсем тоЯ хочу использовать всюду по моему заявлению.В идеале я хотел бы, чтобы таблица мостов и сущность (ReportGroup) были прозрачными, что позволяло бы мне работать с такими сущностями, как эта ...
// Getting a report's groups
var report = this.ReportService.GetReportById(123456);
var groups = report.Groups;
// Getting a group's reports
var group = this.ReportService.GetGroupById(1);
var reports = group.Reports;
Поэтому мой вопрос заключается в том, возможно ли это с EF Database First , и если да, то как правильно подключить это с помощью Fluent API в OnModelCreating ().
Заранее спасибо за помощь.