Как определить порядок, в котором я записываю свои объекты в базу данных?
Я написал элементарный механизм ORM на основе шаблона (-ов) Data Mapper, изложенного Мартином Фаулером. У меня есть единица работы, которая отслеживает, какие объекты были изменены. Очевидно, что из-за внешних ключей и других ограничений БД изменения должны быть записаны в таблицы в определенном порядке.
Какие решения доступны для определения порядка, в котором я пишу изменения? Фаулер намекает на "топографическую сортировку" в своей книге PoEAA.
1 ответ
Я решил это, позволив объектам реализовать интерфейс с единственным свойством под названием Tier. Обработка, выполняемая Unit of Work, использует это для заказа обновлений и удалений через LINK.