Je me demandais si quelqu'un savait comment trouver à quelle colonne la propriété d'une entité est mappée en utilisant NHibernate et en ayant seulement l'interface IEntityPersister
disponible.Recherche de la colonne de base de données à laquelle est mappée la propriété d'une entité
0
A
Répondre
0
Vous pouvez analyser le fichier de mappage si vous en utilisez un. C'est assez simple xml donc une simple requête xpath vous obtiendrait le nom de la colonne. Si vous utilisez des attributs, vous devrez utiliser la réflexion pour obtenir l'attribut de la propriété.
0
Voici un code qui pourrait vous aider.
public static string[] GetDatabaseColumnNamesFromEntityProperty(Type entityType, string propertyName)
{
PersistentClass aNHibernateClass = NHibernateSessionManager.Instance.GetNHibernateConfiguration().GetClassMapping(entityType);
if (aNHibernateClass == null)
{
return null;
}
else
{
string[] columnNames = null;
try
{
Property aProperty = aNHibernateClass.GetProperty(propertyName);
columnNames = new string[aProperty.ColumnCollection.Count];
int count = 0;
foreach (Column column in aProperty.ColumnCollection)
{
columnNames[count] = column.Name;
count++;
}
}
catch(Exception)
{
Property aProperty = aNHibernateClass.IdentifierProperty;
//if(aProperty.Name.Equals(propertyName))
//{
columnNames = new string[aProperty.ColumnCollection.Count];
int count = 0;
foreach (Column column in aProperty.ColumnCollection)
{
columnNames[count] = column.Name;
count++;
}
//}
}
return columnNames;
}
}
Questions connexes
- 1. Ajout de propriété personnalisée à la classe Entité côté client
- 2. Recherche base de données en utilisant une collection d'objets entité
- 3. Détermination de la base de données à partir de laquelle la fonction de la base de données utilitaire séparée est appelée
- 4. Colonne endommagée dans la base de données
- 5. NHibernate: Déterminer si une propriété est mappée à un champ
- 6. Comment faire une recherche efficace de données dans la base de données à l'exception de fullsearch
- 7. Comment accéder à la propriété récupérée dans Objective-C 2.0 à l'aide des données de base
- 8. Personnalisation de la colonne de recherche Sharepoint
- 9. Problème lors de l'insertion d'une entité dans la base de données via un service
- 10. NHibernate - mappe la même entité à différentes tables dans la même base de données
- 11. Linq à entité avec une grande base de données
- 12. C#: Comment voir si une entité Linq2SQL est dans la base de données
- 13. comment copier un contenu de colonne de ma base de données locale à la base de données principale?
- 14. Propriété non mappée LINQ to SQL
- 15. Recommandations pour la base de données orientée colonne
- 16. Fonction fixe de la fonction de recherche de base de données BizTalk
- 17. Colonne de recherche SharePoint à travers la limite de la collection de sites
- 18. Base de données externe de recherche SharePoint
- 19. La mise à jour du schéma de base de données d'infrastructure ADO.NET Entity est-elle possible?
- 20. HQL: Comment trier la liste des objets sur la propriété de mappée élément composite
- 21. Ruby on Rails: Somme des valeurs de ligne de colonne de table à base d'autres données de la colonne
- 22. asp formulaire - accès à la base de données - page de résultats de recherche russe cyrillique
- 23. Problème lors de la lecture des données nchar à partir de la base de données Oracle
- 24. Quelle est la meilleure colonne pour stocker du XML dans une base de données Oracle?
- 25. la recherche d'une manière plus pythonique pour accéder à la base de données
- 26. Existe-t-il une meilleure pratique pour la commande de colonne de base de données?
- 27. FluentNHibernate - Automatisation de la propriété ignore
- 28. Mettre à jour le modèle de données Entité commerciale
- 29. Connectez J2ME à la base de données
- 30. Entité classe de base Bibliothèque
J'ai pensé à faire cela. J'espérais juste qu'il y avait une propriété nommée over/miss dans l'interface 'IEntityPersister' qui me permettait de trouver le nom de la colonne sans avoir à faire l'analyse. – MisterHux