Comment spécifier avec la mappage fluide NHibernate pour une table qui n'a pas de colonne d'identité?
Je veux quelque chose comme ceci: p> Je veux dire aucune clé primaire définie dans la base de données (pas très définie dans la base de données). P> P>
3 Réponses :
J'ai trouvé la réponse à:
public CustomerNewMap() { WithTable("customers_NEW"); Not.LazyLoad(); Id(x => x.Username).GeneratedBy.Assigned(); Map(x => x.Company); }
Si j'essaie tout cela, tous les objets avec la même clé (dans votre exemple X.Username) sont en réalité des copies du premier qui obtiennent extrait de la DB.
J'ai trouvé que je devais définir explicitement un nom de colonne dans un cas similaire. Quelque chose comme
Cela ne répond pas directement à la question. Mais il répond au problème dans le commentaire à la réponse acceptée ici.
Nous avons eu le même problème avec une vue SQL sur notre grand livre. Le problème est que NHibernate va heureusement des lignes en double lorsque la propriété c'était suffisant pour avoir NHibernate pas de carte DUPLICATES. P> P> ID code> n'est pas unique. Dans notre cas .. Nous avions des entrées de premier plan qui avaient le
ID code> .. qui n'était pas unique dans la vue.
Pour contourner cela .. J'ai cartographié un compositeur qui était basé sur tout ce que je pouvais trouver cela rendait la rangée unique. Dans notre cas, il s'agissait d'une combinaison de
CustomerAccounterid code> et
weekending code>: p>