je les tableaux suivants:NHibernate - entité composite, table joignant cartographié par une autre entité
A
--
Id : int
SomeString : varchar(20)
B
--
Id : int
BString: nvarchar(10)
AId : int // FK to A
J'ai une entité A qui est déjà mis en correspondance avec la table A.
Pour l'entité B, J'essaie de faire un composite pour avoir toutes les données de B, ainsi que les champs de A. Les champs de A ne devraient pas être modifiables via B, ils sont juste là pour le cas d'utilisation.
Je suis en train de construire ma cartographie (courant) B comme ceci:
Table("B");
Join(
"A"
m =>
{
m.KeyColumn("AId");
m.Inverse();
m.Map(p => p.SomeString);
}
);
Map(p => p.BString);
Le problème se produit lorsque je tente d'exporter le schéma; il dit que la table A existe déjà. Des idées, ou ça ne marche pas du tout?
Merci
C'est ce que j'ai fini par faire. Je ne vois pas pourquoi ce serait une mauvaise idée (sauf qu'il semble que NHibernate ne semble pas vous laisser le faire). Rejoindre une table et définir ces propriétés en lecture seule dans le mappage de la jointure ne pose pas de problème conceptuel et élimine le besoin de charger un autre modèle assez complexe pour obtenir quelques propriétés. Dans notre cas, cet autre modèle ne peut pas être privé car nous utilisons Fluent pour faire nos mappings. – Andy