¿Cómo especificar el nombre de la tabla en la clase Fluent NHibernate ClassMap?


Soy novato en NHibernate e intento usar Fluent para mapear. El nombre de mi clase de entidad es diferente del nombre de la tabla de la base de datos al que tiene que asignarse. Estoy usando la clase de asignación derivada de ClassMap<>, pero no puedo especificar el nombre de la tabla: la propiedad TableName de ClassMap es de solo lectura.

Gracias por su ayuda.

Author: AlG, 2009-03-11

3 answers

Use Table("table_name") en su lugar.

 43
Author: Spikolynn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-06 12:22:57

Funciona como?

public class UserAccountMap : ClassMap<UserAccount> {
    public UserAccountMap() {
        Table("User");
        Id(x => x.UserID, "UserID").GeneratedBy.Identity();
        Map(x => x.FirstName, "FirstName").Length(50)
            .Not.Nullable();
        Map(x => x.LastName, "LastName").Length(50)
            .Not.Nullable();
    }
}
 6
Author: hardywang,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-02-24 00:21:09

El ejemplo anterior me lleva en la dirección correcta. Esto funcionó para mí. Mi nombre de clase es " Fiesta "y mi nombre de mesa es" prty.Partido".

public class PartyMap : ClassMap<Party>
{
    public PartyMap()
    {
     Table("prty.Party");
     Id(x => x.PartyID);
     Map(x => x.PartyTypeLID);
     Map(x => x.OrganizationTypeLID);
     Map(x => x.PreferredContactMethodLID);
     Map(x => x.PrimaryLanguageLID);
     Map(x => x.PartyVID);
     Map(x => x.BeginDate);
     Map(x => x.EndDate);
     Map(x => x.RowDescriptor);
     Map(x => x.RowModifiedDate);
     Map(x => x.RowModifiedBy);
     Map(x => x.RowCreatedDate);
     Map(x => x.RowCreatedBy);
    }        
}
 6
Author: Phillip Houston,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-10-18 15:05:37