Добавление сложного типа в данные 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 для нашей устойчивости саги.)

Другие вопросы по тегам