2009-10-20 9 views
6

Lectura someposts de Jimmy Boggard y preguntándose: ¿cómo es posible mapear esas bestias con nhibernate fluido?Asignación de clases enum personalizadas con Fluent Nhibernate

¿Cómo se vería la cartografía para esto?

public class EmployeeType : Enumeration{ 
    public static readonly EmployeeType 
    Manager = new EmployeeType(0, "Manager"), 
    Servant = new EmployeeType(1, "Servant"), 
    AssistantToTheRegionalManager = new EmployeeType 
     (2, "Assistant to the Regional Manager"); 

    private EmployeeType() { } 
    private EmployeeType(int value, string displayName) : 
     base(value, displayName) { } 
} 

Respuesta

3

Ah ... fue fácil. En CodeCampServer, existe una clase EnumerationType genérica. La idea es simple: solo tenemos que ajustar el objeto de valor de enumeración de nuestro modelo de dominio con EnumerationType para asignarlo como un entero (o cualquier otra cosa si es necesario).

+0

+1 gracias, y para cualquiera que lo desee lo puede encontrar aquí: http://code.google.com/p/codecampserver/source/browse/trunk/src/Infrastructure/EnumerationType.cs – rohancragg

+1

Este enlace es inválido. http://code.google.com/p/codecampserver/source/browse/trunk/src/Infrastructure.NHibernate/DataAccess/EnumerationType.cs?spec=svn1063&r=1063 –

+0

Gracias por arreglarlo. Cambiaron la estructura del proyecto un poco. –

1

También puede crear derivar de IUserType y especificar cómo almacenar una recuperación de la información de una columna específica en la base de datos, serializando y deserializando la enumeración.

Consulte this article para obtener una explicación simple de los conceptos básicos de IUserType.

Cuestiones relacionadas