2009-04-09 20 views
1

Wir arbeiten mit Legacy-Datenbank, die Integer-Werte in die Varchar-Spalte speichern. Wir müssen diese Spalte der Int32-Eigenschaft zuordnen, und sie funktioniert gut, wenn Daten in der Datenbankspalte numerisch oder NULL sind.(fließend) NHibernate - Zuordnung von Varchar zu Int32

Aber wir haben Probleme, wenn Spalte enthält leere Zeichenfolge anstelle von Null - Nhibernate wirft Fehler, dass es nicht in Ganzzahl konvertieren kann.

Ist es möglich, die Klassenzuordnung so zu konfigurieren, dass alle Werte automatisch konvertiert werden, bei denen die Ausnahme auf einen Standardwert (in diesem Fall Null) erhöht wird?

Antwort

2

Es ist wahrscheinlich möglich, die Werte mithilfe eines Interceptors zu konvertieren. Sie können einen Rat bekommen, indem Sie nach "null value substitution" suchen.

Aber haben Sie wirklich dieses Bedürfnis? Sie könnten ein privates oder schreibgeschütztes Member für die varchar-Spalte zuordnen und eine andere Eigenschaft verwenden, um es zu steuern.

In diesem Beispiel wird _varcharField in NHibernate mithilfe einer Zugriffsstrategie zugeordnet.

+0

Danke, das ist etwas, was ich tun möchte, wenn es nicht durch Mapping getan werden kann. – nihique

Verwandte Themen