0

J'essaye d'automap un code de classe. Les codes peuvent avoir des (sous) codes.FluentNhibernate automapping d'un arbre (association récursive)

public class Code 
{ 
    public virtual string Key{get;set;} 
    public virtual Code Parent{get; set;} 
    public virtual ICollection<Code> SubCodes{get;set;} 
    private ICollection<Code> subCodes = new Collection<Code>(); 
} 

Cela fonctionne, mais je reçois IdParent colonne et une colonne IDCODE dans ma table. Attribution d'un nom à la propriété Parent IdCode n'aide pas alors j'obtiens une colonne IdIdCode et le IdCode

Que dois-je faire pour résoudre ce problème.

J'utilise AutoMapping avec un objet Configuration

Répondre

1

On dirait que votre AutoMapping utilise une convention qui a ajouté le préfixe Id aux références et à l'Id.

Si vous le souhaitez, vous pouvez remplacer cette convention en utilisant votre propre ForeignKeyConvention personnalisé dans la configuration AutoMap. Sinon, nommez simplement les colonnes de votre table db en conséquence.

+0

Le nom de la colonne pour le parent n'est pas le problème. Le point est qu'il est ajouté deux fois: une fois pour la clé étrangère et une fois comme mappage pour la propriété. Je souhaite exposer la colonne IdCode générée en tant que propriété à la classe Code ou, si cela n'est pas possible, avoir le champ parent utilisé comme colonne pour la clé étrangère par le mappage. À l'heure actuelle, j'ai deux colonnes dans ma table, et une propriété dans ma classe, ou une colonne dans ma table et aucune propriété dans ma classe. En passant, vous êtes rapide Variante, merci –

+0

Avez-vous une convention de mapping pour le 'Id'? Je ne comprends toujours pas quel est votre problème. Pouvez-vous publier les mappages hbm générés par le mappage automatique? | Vous pouvez les obtenir en utilisant 'ExportTo' dans votre configuration Automapping. – Variant

+0

La colonne IdCode que vous obtenez est probablement le mappage 'Id' généré automatiquement. Quelle est la clé primaire que vous voulez utiliser pour votre entité? – Variant

Questions connexes