2011-04-29 16 views
12

Tenemos POCO, algo así como:¿cómo hacer que NHibernate ignorar una propiedad en un POCO

public class Person 
{ 
    public Guid PersonID { get; set; } 

    public string FirstName { get; set; } 

    public string LastName { get; set; } 

    public DateTime DateOfBirth { get; set; } 

    public string Version {get; set; } 
} 

y el archivo de HBM correspondiente como

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.FirstAttempt" namespace="NHibernate.FirstAttempt.Entity" > 
    <class name="Person" lazy="false"> 
    <id name="PersonID"> 
     <generator class="guid" /> 
    </id> 
    <property name="FirstName" /> 
    <property name="LastName"  /> 
    <property name="DateOfBirth" /> 
    </class> 
</hibernate-mapping> 

Si se mira de cerca, tenemos una versión propiedad, para la cual no hay una columna en la base de datos? Solo queremos que nHibernate ignore esta propiedad y esa es la razón por la que no pusimos la propiedad en el archivo de mapeo. Pero en cambio, comenzó a arrojar un error.

¿Hay una manera de evitar esto?

Respuesta

18

Usted debe hacer todos los miembros virtual y no un mapa de la propiedad que desea ignorar.

+0

Gracias a mí me funciona –

+1

estaba preguntando, ¿hay una salida en caso de que no desea hacer los miembros virtual? –

+1

Sí, debe desactivar la carga diferida de forma predeterminada. Entonces, solo las propiedades de la colección deben ser virtuales, IIRC. – Andy

Cuestiones relacionadas