É possível mapear uma chave composta em nhibernate fluente, onde metade da chave é um campo de identidade no banco de dados?

StackOverflow https://stackoverflow.com/questions/1615647

Pergunta

como a questão estados, é possível mapear uma chave composta em nhibernate fluente (ou não fluente suponho), onde um dos dois campos usados ??no compósito é um campo de identidade?

Eu tenho uma tabela onde uma parte da chave primária é um campo de identidade e o outro é um ID de inquilino. Este é um banco de dados legado onde a chave composta é usado como chaves estrangeiras todo, então modificar o banco de dados seria bastante significativo.

Obrigado!

Foi útil?

Solução

Se é realmente uma coluna de identidade, então é garantido que ser exclusivo para cada registro, certo?

Se sim, você pode ignorar o ID de arrendamento completamente para fins de mapeamento. Seus campos de identidade será único em sua tabela primária -. E suas referências de chave estrangeira irá conter essa identificação única, de modo que o ID de arrendamento é realmente irrelevante

NHibernate realmente não importa se você está mapeando seu esquema de banco de dados exatamente. Eu tenho trabalhado com bancos de dados legados antes onde eu defini uma restrição exclusiva em uma coluna não-chave e, em seguida, disse NHibernate usar isso como a chave primária - ele funciona, e pode perfeitamente contornar todos os tipos de relacionamento composite-chave horrível mapeamentos.

Pense nisso. Contra-intuitivo, mas ele provavelmente irá trabalho.

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