Tengo el siguiente mapeo:cadena de Ajuste que debe tipo SQL de "varchar" en lugar de "nvarchar"
public class LogEntryMap
{
public LogEntryMap()
{
Map.Id(x => x.Id).GeneratedBy.Identity();
Map(x => x.Context).CustomSqlType("varchar").Length(512);
}
}
Sin embargo, el uso de SchemaExport
para generar la base de datos en SQL Server 2008, generó la secuencia de comandos hace caso omiso de la longitud lo que en efecto que termina siendo un varchar
con longitud de 1:
create table OV_SAC.dbo.[LogEntry] (
Id BIGINT IDENTITY NOT NULL,
Context varchar null,
primary key (Id)
)
.CustomSqlType("varchar 512")
produce una excepción. Y sin definir el CustomSqlType
, las cadenas se asignan a nvarchar
(que respeta la propiedad Length
).
¿Alguna sugerencia?
¡Genial! Ahora, ¿y si quiero TODAS mis propiedades como varchar, excepto una? ¿Puedo anular el CustomType para esa entidad en la asignación sin ser sobrescrito por la convención? –
@GerardoGrignoli: sí, puedes. Las convenciones solo establecen los valores predeterminados. Si usa la convención de ansi-string y luego hace una asignación de columna específica para tener, por ejemplo, '.CustomType', funcionará como cabría esperar. –
quetzalcoatl