2010-07-31 4 views
2

Je viens de terminer la mise en correspondance de 100 ~ tables de notre base de données Oracle de production. En cours de route, j'ai remarqué que de nombreuses relations ne se modélisaient pas. Clés principalement étrangères.Base de données de production de mappage

Dois-je modifier mes mappages pour inclure les relations appropriées? Ou devrais-je garder le mapping tel quel pour refléter la base de données à 100%?

Je suis plus enclin à cartographier les relations appropriées pour clarifier la manière dont les tables sont liées les unes aux autres. Voici un exemple de ce que je veux dire.

[ActiveRecord("Incident")] 
public class Incident : ActiveRecordBase<Incident> 
{ 
    [PrimaryKey("IncidentId")] 
    public int IncidentId { get; set; } 

    [Property(Column = "CustomerOut")] 
    public int CustomersOut { get; set; } 

    [Property(Column = "DistrictNumber")] 
    public int DistrictNumber { get; set; } 
} 

[ActiveRecord("District")] 
public class District : ActiveRecordBase<District> 
{ 
    [PrimaryKey("DistrictNumber")] 
    public int DistrictNumber { get; set; } 

    [Property(Column = "DistrictName")] 
    public string DistrictName { get; set; } 
} 

Comme vous pouvez le voir, la colonne DistrictNumber de la table des incidents n'est pas relation FK (Appartient), même si je crois qu'il devrait être.

+2

peut vous envoyer un échantillon classe mappée qui ne possède pas les relations? –

+0

Bien sûr, laissez-moi ressortir quelque chose de très rapide. – Mike

Répondre

1

J'inclurais des relations appropriées.

Avec cela vous pouvez bénéficier pleinement de nhibernate, un exemple est un mappage avec all-delete-orphan. NHibernate gérera tous les enfants pour vous, sans cela, vous devez écrire le code pour supprimer les enregistrements enfants.

Aussi je suppose que vous avez besoin des relations pour utiliser le chargement paresseux ... encore une fois, je pense que vous devez mapper corectly pour vous permettre d'utiliser entièrement nhibernate.

1

J'ai déjà répondu à your question here il y a quelques jours à propos de ce qui est la bonne chose à faire: cartographie les relations comme des relations appropriées.

1

Bien sûr, vous devez mapper les relations car elles sont correctement dans la base de données. En utilisant un ORM, comme NHibernate, vous gagnez beaucoup en mappant la base de données complètement et correctement!

Sinon, vous vous retrouvez à écrire un tas de code, qui est hors de la boîte en utilisant NHibernate ...

Questions connexes