Nhibernate не особенно полезен для этого, потому что операция физического сохранения является второстепенным аспектом сохранения рабочего процесса. Участвующая часть - это все сервисы, которые поддерживают выгрузку, перезагрузку и активацию рабочих процессов в соответствующее время и т. Д. Внутренняя работа среды выполнения и сервисов также усложняется тем фактом, что рабочие процессы охватывают границы приложений, которые могут длиться бесконечно долго. Различные объекты могут находиться в разных состояниях в любой момент времени. Поскольку для вызова не может быть гарантированно даже наличие клиента в этих условиях, то, что на самом деле делает среда выполнения, когда вы вызываете событие в рабочем процессе, например, помещает сообщение в очередь, а не вызывает фактический указатель на функцию. Вот как вы можете «вызвать» событие в рабочем процессе, который не запущен.
Вы можете получить доступ к этим очередям сообщений и другим низкоуровневым деталям среды выполнения, но, вероятно, лучше всего попытаться остаться в рамках Microsoft и избегать перестройки чего-либо в максимально возможной степени. Если вы делаете все по-своему, что намного проще, чем пытаться управлять им самостоятельно, Nhibernate становится довольно бессмысленным, потому что все, что он будет делать, это сохранить поток двоичной сериализации.
Среди различных доступных расширений одним из них является возможность создания пользовательских поставщиков сохраняемости, которые могут работать в существующей структуре рабочего процесса. Поставщик Oracle уже написан. Не может засвидетельствовать его надежность, но вы должны, по крайней мере, уметь опираться на это.
http://wftools.codeplex.com/