2009-09-03 7 views
1

Я новичок в Workflow Foundation. Я проработал свой путь через одну книгу (программирование Windows Workflow Foundation от К. Скотта Аллена), и все было в порядке, но у меня осталось несколько вопросов. Самый большой из них: «Где я помещаю данные»?Workflow Foundation: где я могу поместить свои данные?

Всюду по книге он использует идею системы отслеживания ошибок; сценарий не слишком далек от того, что я хочу сделать. Его примеры используют простой класс Bug с тремя свойствами и ничего другого, и он просто делает его полем для своей деятельности и передает его там, где это необходимо. Но в реальном мире отчет об ошибках, вероятно, будет иметь строки текста, которые вы хотите найти для поиска; мой сценарий, безусловно, делает. Если весь текст передается службой персистентности, как мне получить его для поиска текста?

В реальном мире, что вы будете делать со своими данными?

ответ

2

Для простых ключей или ассоциированных внешних ключей вы можете использовать службу отслеживания для хранения таких пар ключ/значение в базе данных и запросить их позже, используя информацию отслеживания в таблицах отслеживания.

Для полнотекстового поиска вы можете хранить данные в дополнительных таблицах, которые вы создаете бок о бок, к исходным таблицам службы sql-persistence-service. Вы должны вручную добавить и удалить их в случае окончания рабочего процесса или ошибки.

+0

Думаю, я бы закрепил эти таблицы на workflowID? Хотя GUID в качестве ключей нахмурились в SQL, не так ли? – ssg31415926

+0

Да, вы должны ссылаться на WorkflowId как на GUID в этих таблицах. Лично я считаю, что GUID - хороший выбор для ключей в базах данных. Конечно, существуют сценарии с секционированными таблицами и т. Д., Которые имеют преимущества, например. целые числа, но в общих объектах обычно создаются с любым языком программирования во время выполнения в памяти и persistet «позже» в базах данных. Таким образом, GUID хороши, потому что вы можете определить идентичность экземпляра объекта во время выполнения в памяти, не изменяя его, сохраняя базу данных. – Mischa

+0

Достаточно честный. Я не DBA: Я просто так, как мне сказали. :-) Возвращаясь к вашему первоначальному ответу, я думаю, что мы вряд ли захотим удалить текстовые данные при завершении рабочего процесса и, вероятно, редко в случае ошибки (если это не произойдет очень рано) так что это упростит ситуацию. Большое спасибо за вашу помощь. – ssg31415926

Смежные вопросы