2011-03-19 2 views
0

J'ai rencontré un problème avec la saisie automatique dans une clé fluide et de référence. Exemple serait que:Clé de référence dupliquée - Fluid NHibernate Automapping

public class ConfigurationCategory 
{ 

    public virtual Guid Id { get; private set; } 

    [NotNull] 
    public virtual String Name { get; set; } 
    public virtual String Description { get; set; } 
    public virtual String Icon { get; set; }  

    public virtual ConfigurationCategory Parent { get; set; } 

    public virtual IList<ConfigurationCategory> Children { get; private set; } 

    public ConfigurationCategory() 
    { 
     Children = new List<ConfigurationCategory>(); 

    } 
} 

Résultats dans le SQL-sortie suivante:

CREATE TABLE "ConfigurationCategory" 
    ... 
    parent_id uuid, 

    configurationcategory_id uuid, 

    CONSTRAINT "ConfigurationCategory_pkey" PRIMARY KEY (id), 

    CONSTRAINT fk6ccc850055890dc8 FOREIGN KEY (configurationcategory_id) 
     REFERENCES "ConfigurationCategory" (id) MATCH SIMPLE 
     ON UPDATE NO ACTION ON DELETE NO ACTION, 

    CONSTRAINT fk6ccc8500ee71b726 FOREIGN KEY (parent_id) 
     REFERENCES "ConfigurationCategory" (id) MATCH SIMPLE 
     ON UPDATE NO ACTION ON DELETE NO ACTION 

Pourquoi ConfigurationCategory dupliqués?

Répondre

1

Je n'ai pas utilisé le routage automatique, mais j'imagine que c'est confus du fait que vous avez les propriétés Parent et Children; Je suppose que couramment ne peut pas dire qu'ils sont tous les deux destinés à être manipulés par la même colonne dans la base de données.

Vous devez probablement créer une classe ClassMap et spécifier les noms de colonnes clés pour les appels References() et HasMany().

Questions connexes