Domanda

Vorrei analizzare un file di mappatura Fluent NHibernate in modo da poter ottenere il nome della tabella e i nomi delle colonne specificati al suo interno.

Caricare l'assembly e riflettere il tipo come ClassMap non è un problema, ma quella classe ottiene solo metodi per impostare i nomi di tabella e colonna, niente per recuperare nuovamente i nomi.

Qualche idea?

È stato utile?

Soluzione

Utilizzando Riflettore, sembra che il metodo Table abbia questa firma:

public void Table(string tableName)
{
    this.attributes.Set<string>(x => x.TableName, tableName);
}

Le colonne saranno molto più difficili poiché mantengono proprietà, riferimenti e raccolte separate.Per esempio.

protected virtual PropertyPart Map(PropertyInfo property, string columnName)
{
    PropertyPart propertyMap = new PropertyPart(property, typeof(T));
    if (!string.IsNullOrEmpty(columnName))
    {
        propertyMap.Column(columnName);
    }
    this.properties.Add(propertyMap);
    return propertyMap;
}

In teoria, tuttavia, potresti ottenere gli attributi, le proprietà e i riferimenti dei campi privati ​​tramite la riflessione e ottenere le informazioni in questo modo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top