В терминах непрофессионала, что такое единица работы в отношении объектов базы данных? Я изучаю, как конвертировать таблицы базы данных в классы C#, и я часто сталкиваюсь с этим термином, но все, похоже, описывают это, как будто вы уже должны знать, что это такое.Что такое единица работы в отношении объектов базы данных?
ответ
Я процитирую Martin Fowler здесь, так как я думаю, что его значение является одним из ярчайший, наиболее приемлемым я видел:
Единица работы отслеживает все, что вы делаете во время бизнес-операции, может повлиять на базу данных. Когда все будет готово, он выяснит все, что нужно сделать, чтобы изменить базу данных в результате вашей работы.
В основном это означает работу, необходимую для выполнения атомного действия, например. перевод денег между двумя расчетными счетами.
Примера (в псевдокоде)
Procedure TransferBetweenAccounts(Amount, Account source, Account target)
Begin Transaction
Debit source account By (Amount) }----Unit of
Credit target account By (amount) }----Work
End Transaction
If Transaction Failed
Roll Back
Хорошая статья MSDN описание единицы работы и персистенции Неведении здесь: http://msdn.microsoft.com/en-us/magazine/dd882510.aspx
В LINQ к SQL единицы работы определяется как (http://msdn.microsoft.com/en-us/library/bb546187.aspx):
Экземпляр контекста данных должен иметь жизни одной «единицы работы». В условиях слабосвязанной работы рабочий блок , как правило, небольшой, , возможно, одна оптимистичная транзакция, , включая один звонок до SubmitChanges. Поэтому создается контекст данных и размещается в области . Если единица работы включает в себя вызовы в бизнес-правила логики, то обычно вы хотите сохранить экземпляр DataContext для этого всей операции
Понимание единицы работы имеет важное значение для достижения успеха с помощью LINQ к SQL. Посмотрите на этой странице (сценарий обновления), для того, как единица работы шаблона вписывается в LINQ к SQL:
http://aspalliance.com/1414_LINQ_to_SQL_Part_4__Updating_our_Database.3
Patterns Мартина Фаулера корпоративной архитектуры книге есть немало страниц, посвященных этой теме (стр. 184-194). Его краткое определение:
«Содержит список объектов, пострадавших на бизнес-операции и координирует выписывая изменений и разрешение параллелизма проблем.»
Спасибо, это было очень ясно. –