Ich habe mich gefragt, ob jemand wusste, wie die Spalte einer Entitätseigenschaft mithilfe von NHibernate ermittelt werden kann und nur die IEntityPersister
-Schnittstelle verfügbar ist.Suchen nach der Datenbankspalte, der die Eigenschaft einer Entität zugeordnet ist
0
A
Antwort
0
Sie könnten die Zuordnungsdatei analysieren, wenn Sie eine verwenden. Es ist ziemlich einfach XML, so dass eine einfache Xpath-Abfrage Sie den Spaltennamen erhalten würde. Wenn Sie Attribute verwenden, müssen Sie die Reflektion verwenden, um das Attribut von der Eigenschaft abzurufen.
0
Hier ist ein Code, der helfen könnte.
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;
}
}
Verwandte Themen
- 1. Ändern der GORM-Datenbankspalte
- 2. Suche nach String-Wörtern in der Datenbankspalte
- 3. Ist @namedQuery erforderlich, wenn Entität einer Sicht zugeordnet wird?
- 4. Speicherfeld in der Datenbankspalte
- 5. Erstellen einer nicht zugeordneten Eigenschaft in einer Entität (Entitätsframework)
- 6. Include serverseitige Eigenschaften, die Entity Framework-Entität nicht zugeordnet sind
- 7. Private Eigenschaft in der coreData-Entität
- 8. Fügen Sie einer DBML-generierten Entität zusätzliche Eigenschaft hinzu, die nicht in der Datenbank enthalten ist
- 9. Wo ist der Aufgabenstapel in C# zugeordnet?
- 10. Fehler beim Filtern einer Eigenschaft einer Entität, die in Entity Framework von einer anderen Entität erbt
- 11. C# - Suchen Sie ein Steuerelement nach einer der Eigenschaften
- 12. Wie suchen Sie eine Datenbankspalte, die Markup erlaubt?
- 13. Suchen nach einem Objekt, das die vererbte Eigenschaft bereitstellt
- 14. Entität wird dem Tabellennamen nicht korrekt zugeordnet
- 15. HQL: Reihenfolge nach Eigenschaft der nullbaren Eigenschaft
- 16. Automatische Aktualisierung einer Datenbankspalte
- 17. JPA-Entität als OneToOne sowie OneToMany zugeordnet
- 18. die Liste der Ints mit einer Enum-Typ zugeordnet
- 19. Holen Sie eine andere Entität während der Verarbeitung einer Entität
- 20. Nach einer Nullreferenz suchen?
- 21. Verwenden der Lite-Version der Entität in nHibernate Relations?
- 22. Was ist die beste Möglichkeit, nach einer genauen Übereinstimmung mit der Postgres-Volltextsuche zu suchen?
- 23. Suchen Sie nach einer Nummer, die nicht in der ID-Spalte enthalten ist
- 24. Abfrage nach Entität (Beispiel)
- 25. Ermitteln der Sprache des Zeichenfolgenwerts aus einer Datenbankspalte
- 26. An welchem Punkt ist der ViewState der Page-Sitzung zugeordnet?
- 27. Ist der Name IsFemale für eine Datenbankspalte ungeeignet?
- 28. Suchen Sie nach der Suffixbaumimplementierung in C#?
- 29. Suchen nach Details der NSError-Webkit-Domäne
- 30. Hibernate Envers: Suchen die richtigen Revisionen eines Unternehmens mit einer Sammlung Eigenschaft
Ich habe darüber nachgedacht. Ich hatte nur gehofft, dass es in der 'IEntityPersister'-Schnittstelle eine Eigenschaft namens "over-sah/miss" gab, die es mir ermöglichte, den Spaltennamen zu finden, ohne das Parsing durchführen zu müssen. – MisterHux