Планирую модель БД и столкнулся с тем что у меня много сязей между 3 таблицами со следуюшей зависимостью:
1-ая таблица базовая, 2-ая таблица дополнение первой таблицы уникальными свойствами, 3-я таблица хранит коллекцию элементов 2-ой таблицы.
Пример
// Станция. базовая таблица
public class StationDto : IEntitie
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[Required]
public int EcpCode { get; set; }
[Required]
public string Name { get; set; }
public ICollection<StationsRouteDto> StationsRouteDto { get; set; } //Один ко многим с StationsRouteDto
}
//Станция учавствующая в построении маршрута. дополнение станции.
public class StationsRouteDto : IEntitie
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public bool IsLanding { get; set; } //флаг посадки.
[Column(TypeName = "datetime2")]
public DateTime? ArrivalTime { get; set; } //Время прибытия поезда на станцию
[Column(TypeName = "datetime2")]
public DateTime? DepartureTime { get; set; } //Время отправления поезда со станции
public int StationDtoId { get; set; }
public StationDto StationDto { get; set; } //Станция
public ICollection<RegShStationsRouteRoutes> RegShRoutes{ get; set; } //Расписание, в которые входят данные станции
}
//Расписание. хранит коллекцию дополненных станций.
public class RegulatoryScheduleDto : IEntitie
{
[Key]
public int Id { get; set; }
//Много настроек............
public ICollection<RegShStationsRouteRoutes> Route { get; set; } //маршрут
}
//промежуточная таблица для связи многие ко многим. через 2-е связи 1 ко многим.
public class RegShStationsRouteRoutes
{
public int RegShId { get; set; }
public RegulatoryScheduleDto RegulatoryScheduleDto { get; set; }
public int StatRouteId { get; set; }
public StationsRouteDto StationRouteDto { get; set; }
}
Изначально имею заполненный список станицй(StationDto). Необходимо создавать строчки расписания (RegulatoryScheduleDto).
ШАГИ: 1. Выбираю из списка StationDto.
На базе выбранного объекта создаю StationsRouteDto, заполняя IsLanding, ArrivalTime, DepartureTime
Выполняю поиск по совпадению всех значений созданного объекта StationsRouteDto в БД. Если станция с такими настройками уже есть, то присваиваю ID найденой станции своему созданному объекту.
Таким образом (создавая новые StationsRouteDto или используя уже добавленные в бд) создаю List.
Создаю объект RegulatoryScheduleDto, заполняя все настройки кроме Route.
На базе созданного списка List создаю список RegShStationsRouteRoutes используя созданный объект RegulatoryScheduleDto для связи M2M.
В объект расписания RegulatoryScheduleDto делаю присвоение св-ву Route, только что созданной проекцией списка в пункте 6.
Делаю Save в БД.
Правильно ли я расписал шаги, или можно сделать оптимальнее? Т.е. код EF будет много, я думаю целесообразно сделать сервисов по доступу к данным и скрыть туда всю работу с репозиторием?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Есть блок, который я отключаю с помощью SetActiveЗатем проверяю, активен ли объект с помощью ActiveSelf
Подскажите пожалуйста есть ли какой нибудь метод соприкосновения 2х пикчерБоксов в c#?