Pergunta

Vamos dizer que eu tenho uma tabela pedido, que é o seguinte:

RequestId INT  
ReferenceNumber VARCHAR

Cada pedido é registrado em uma tabela requestlog. Não há chaves estrangeiras entre as tabelas:

RequestLogId INT  
ReferenceNumber VARCHAR  
Content VARCHAR  

O requestlog contém o conteúdo do pedido, e este conteúdo precisa ser armazenado por um período de tempo. O pedido pode ser excluído, mas o log só pode ser excluído após um período de tempo.

Como posso mapear o meu objeto de solicitação para que ele possa conter uma lista de requestlogs, com base na ReferenceNumber?

Eu tentei isso:

Table("InsuranceRequest");  
Id(i => i.Id).Column("InsuranceRequestId");  
Map(i => i.ReferenceNumber);  
HasMany(i => i.InsuranceRequestLog).KeyColumn("RefenceNumber").LazyLoad.Cascade.None();

Não funciona embora. Este mapeamento tenta mapear o ReferenceNumber ao RequestLogId de requestlog. Existe uma maneira de especificar que a coluna se juntar deve ser o ReferenceNumber insurancerequestlog?

Foi útil?

Solução

nada impedir a muitos para muitos em sua estrutura de tabela .. eu recomendo mudar a estrutura e torná-los chaves estrangeiras, e tenho certeza que a muitos para muitos mapeamento irá trabalhar para u se o mapeamento eu não trabalho após a mudança da estrutura.

Outra dica para u: tomar um db vazia e tentar expor esquema .. que o retorno vai ser capaz de ver o que NHibernate acho que a estrutura deve ser semelhante

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top