Добавление сложного типа в данные Saga
Я пытаюсь создать Saga с SagaData, который содержит сложный тип.
Например:
public class MySagaData : IContainSagaData
{
public virtual Guid Id { get; set; }
public virtual string Originator { get; set; }
public virtual string OriginalMessageId { get; set; }
public ComplexType MyComplexType { get; set; }
}
Это возможно? Если да, то как вы это сопоставляете, и является ли это анти-паттерном? Я не нашел никаких ресурсов в Интернете, которые бы говорили о том, как это сделать, и это наводит меня на мысль, что я что-то упускаю.
1 ответ
Это возможно, и моя команда делает это часто. Это в некоторой степени зависит от вашей настойчивости.
Если вы используете RavenDB, он должен просто работать. Мы сделаем это еще дальше и получим List(Of ComplexType), а RavenDB сохранит это без проблем.
Если вы работаете с NHibernate, вам, возможно, придется сделать какое-то дополнительное сопоставление, чтобы сделать эту работу, поскольку сам NHibernate имеет некоторые ограничения / соглашения относительно того, как объекты сериализуются и сохраняются (я не так знаком с NHibernate, так как мы всегда используем RavenDB для нашей устойчивости саги.)