Mappature fluide della riflessione di Hibernate
-
27-10-2019 - |
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?
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