Nhibernate ist dafür nicht besonders nützlich, da die physische Persistenzoperation ein kleiner Aspekt der Workflow-Persistenz ist. Der beteiligte Teil sind alle Dienste, die das Entladen, das Neuladen und das Aktivieren von Workflows zu den entsprechenden Zeitpunkten usw. unterstützen. Das Innenleben der Laufzeit und der Dienste wird auch durch die Tatsache kompliziert, dass Workflows Anwendungsgrenzen überspannen, die unendlich lange dauern können. Verschiedene Entitäten können sich zu jedem Zeitpunkt in unterschiedlichen Zuständen befinden. Da nicht garantiert werden kann, dass ein Aufruf unter diesen Bedingungen überhaupt einen Client hat, legt die Laufzeit beispielsweise beim Auslösen eines Ereignisses in einem Workflow eine Nachricht in eine Warteschlange, anstatt einen eigentlichen Funktionszeiger aufzurufen. Auf diese Weise können Sie ein Ereignis in einem nicht laufenden Workflow "auslösen".
Sie können auf diese Nachrichtenwarteschlangen und andere Low-Level-Details der Laufzeiten zugreifen, aber es ist wahrscheinlich am besten zu versuchen, innerhalb des Microsoft-Rahmens zu bleiben und zu vermeiden, alles so weit wie möglich neu zu bauen. Si, wenn Sie die Dinge auf ihre Art und Weise tun, was viel einfacher ist, als zu versuchen, es selbst zu verwalten, wird Nhibernate ziemlich sinnlos, weil alles, was es tun würde, ist ein binärer Serialisierungsstrom persistieren.
Zu den verschiedenen verfügbaren Erweiterungen gehört auch die Möglichkeit, benutzerdefinierte Persistenzanbieter zu erstellen, die innerhalb des bestehenden Workflow-Frameworks arbeiten können. Es gibt bereits einen Oracle-Anbieter. Ich kann nicht bestätigen, dass er zuverlässig ist, aber Sie sollten zumindest in der Lage sein, auf ihm aufzubauen.
http://wftools.codeplex.com/