2010-06-02 4 views
2

Inverser une base de données existante pour mapper avec N-Hibernate à l'aide de N-Hibernate fluide.Mappage de table de jointure NHibernate fluide

Comment puis-je mapper ceci?

table d'adresses

Id
Adresse1
Address2

personne Table

Id
Première
Derniers

Types

Id
TypeName

table PersonAddress (Une personne peut avoir chez vous, adresses, etc.)

Id

personID (Id de la table personne)

AddressId (Id de table d'adresses) TypeId (ID provenant de la table de recherche de types HOME, BUSINESS etc ..)

Toute aide serait géniale. Merci

Voici une autre question délicate en plus de la cartographie ci-dessus. Je ne sais pas comment il serait facile de le cartographier.

Party Tableau

Id Personne Id souligne Personne

Identifiers Tables

Id Party Id type Id valeur Identificateur

table des employés

Id employé Non fête ou personne t capable a la clé étrangère à cette table. L'ID employé est stocké dans la table d'identificateurs . donc par exemple La table d'identifiants est utilisée pour stocker des valeurs pour différents types. Les identifiants pour une partie donnée pourraient DriverLicense, EmployeeId, SSN, numéro de carte de crédit etc, cela pourrait être beaucoup de valeurs.

données d'identification de l'échantillon

Id, PartyId, TypeId, IdentifierValue

1, 1, 1, EMPLID-1234 2, 2, 1, EMPLID-4567 3, 3, 1, EMPLID- J'essaie de contourner ce problème et je n'arrive pas à le mettre en correspondance.

Répondre

4
// this answer assumes you have functional Address, Person, Type, and PersonAddress objects. 

public class AddressMap : ClassMap<Address> 
{ 
    public AddressMap() 
    { 
    Id(x=>x.Id); 
    Map(x=>x.Address1); 
    Map(x=>x.Address2); 
    } 
} 

public class PersonMap : ClassMap<Person> 
{ 
    public PersonMap() 
    { 
    Id(x=>x.Id); 
    Map(x=>x.First); 
    Map(x=>x.Last); 
    } 
} 

public class TypeMap : ClassMap<Type> 
{ 
    public TypeMap() 
    { 
    Id(x=>x.Id); 
    Map(x=>x.TypeName); 
    } 
} 

public class PersonAddressMap : ClassMap<PersonAddress> 
{ 
    public PersonAddressMap() 
    { 
    Id(x=>x.Id); 
    References(x=>x.Person, "PersonId"); 
    References(x=>x.Address, "AddressId"); 
    References(x=>x.Type, "TypeId"); 
    } 
} 
+0

Cela fonctionne super !! Merci pour votre aide. – Rusty

+0

Mais cela ne rejoint pas réellement les tables, donc votre performance est toujours un succès parce qu'elle fait des requêtes individuelles pour chaque objet enfant. – Nexxas

Questions connexes