В моей программе есть два класса, скажем, категория и произведение, причем каждый объект продукта содержит ссылку на категорию, к которой он принадлежит. При загрузке данных из XML и их хранении в базе данных возникает проблема:Загрузка данных из xml
Если я создаю объект категории и сначала сохраню его в базе данных, при создании продукта не будет данных. (Я хочу, чтобы каждая загрузка xml быть транзакционным, таким образом, если пользователь ошибся с ошибкой, база данных останется прежней).
Если я создаю продукт первым, для них не будет ссылки (CategoryID, сгенерированной базой данных). Я также могу сначала проверить все продукты, но при проверке и создании объектов будет много дублированного кода. Какова наилучшая практика?
Заранее спасибо!
Можете ли вы добавить какой язык/технологию вы используете (для вашего уровня обслуживания/DAL)? Это поможет получить более качественные ответы. –
Хорошо, спасибо! Я использую C# и linq2sql как свой DAL. – Roy
linq to sql поддерживает транзакции. См. Http://www.microsoft.com/ru/msdn/nuggets/nugget/206/Transactions-in-LINQ-to-SQL.aspx для примера. Также есть несколько вопросов о stackoverflow о транзакциях и linq2sql, которые должны быть информативными. –