Я столкнулся со следующей ошибкой: Имя корреляции 'accountali4_' указано несколько раз в предложении from. . Я использую Fluent Nhibernate в C #.
У кого-нибудь есть идеи, как это решить? Спасибо
Эта ошибка возникает только тогда, когда я выполняю соединение с "SwiftCommonData"
РЕДАКТИРОВАНИЕ: Добавление дополнительной информации. Mt942Message является подклассом TypedMessage, и я заметил, что любое соединение с ней выдает исключение.
FxSwiftMessage swiftAlias = null;
BasicHeaderBlock basicHeaderAlias = null;
ApplicationHeaderBlock appHeaderAlias = null;
Mt942Message typedAlias = null;
SwiftCommonData accountAlias = null;
return CurrentSession.QueryOver<FxSwiftMessage>(() => swiftAlias)
.JoinAlias(() => swiftAlias.BasicHeader, () => basicHeaderAlias)
.JoinAlias(() => swiftAlias.ApplicationHeader, () => appHeaderAlias)
.JoinAlias(() => swiftAlias.Text.TypedMessage, () => typedAlias)
//.JoinAlias(() => typedAlias.AccountIdentification, () => accountAlias)
.Where(() => typedAlias.GetType() == typeof(Mt942Message))
.And(() => ((DateTime)appHeaderAlias.InputDate).Date == referenceDate)
.And(() => basicHeaderAlias.LogicalTerminalAddress.IsLike(bicRecipient, MatchMode.Start))
.And(() => appHeaderAlias.RecipientsBic.IsLike(bicSender, MatchMode.Start))
.And(() => swiftAlias.Process == false)
//.And(() => accountAlias.Data == account)
.TransformUsing(Transformers.DistinctRootEntity)
.List<FxSwiftMessage>();
Здесь SQL, сгенерированный Fluent Nhibernate, четыре раза для "accountali4_".
FROM TB_BTG_SWIFT_MESSAGE this_
inner join TB_BTG_SWIFT_BASIC_HEADER basicheade1_ on this_.ID_BASIC_HEADER=basicheade1_.ID_BASIC_HEADER
inner join TB_BTG_SWIFT_APPLICATION_HEADER appheadera2_ on this_.ID_APPLICATION_HEADER=appheadera2_.ID_APPLICATION_HEADER
inner join TB_BTG_SWIFT_TYPED_MESSAGE typedalias3_ on this_.ID_TYPED_MESSAGE=typedalias3_.ID_TYPED_MESSAGE
inner join TB_BTG_SWIFT_COMMON_DATA accountali4_ on typedalias3_.ID_ACCOUNT_IDENTIFICATION=accountali4_.ID_COMMON
inner join TB_BTG_SWIFT_COMMON_DATA accountali4_ on typedalias3_.ID_ACCOUNT_IDENTIFICATION=accountali4_.ID_COMMON
inner join TB_BTG_SWIFT_COMMON_DATA accountali4_ on typedalias3_.ID_ACCOUNT_IDENTIFICATION=accountali4_.ID_COMMON
inner join TB_BTG_SWIFT_COMMON_DATA accountali4_ on typedalias3_.ID_ACCOUNT_IDENTIFICATION=accountali4_.ID_COMMON
этот вопрос не является дубликатом: Имя корреляции 'MR' указывается несколько раз в предложении FROM
Nhibernate генерирует SQL.
Я хотел бы понять почему, если я сделал ошибку в отображении или запросе.