Ho il seguente mappatura:stringa di impostazione per essere di tipo SQL di "varchar" invece di "nvarchar"
public class LogEntryMap
{
public LogEntryMap()
{
Map.Id(x => x.Id).GeneratedBy.Identity();
Map(x => x.Context).CustomSqlType("varchar").Length(512);
}
}
Tuttavia, utilizzando SchemaExport
per generare il database in SQL Server 2008, generato lo script ignora la lunghezza così in effetti si finisce per essere un varchar
con lunghezza di 1:
create table OV_SAC.dbo.[LogEntry] (
Id BIGINT IDENTITY NOT NULL,
Context varchar null,
primary key (Id)
)
.CustomSqlType("varchar 512")
genera un'eccezione. E senza definire lo CustomSqlType
, le stringhe sono mappate su nvarchar
(che rispetta la proprietà Length
).
Qualche suggerimento?
Ottimo !! Ora, cosa succede se voglio TUTTE le mie proprietà come varchar, tranne una? Posso sovrascrivere CustomType per quell'entità nella mappatura senza essere sovrascritto dalla convenzione? –
@GerardoGrignoli: sì, puoi. Le convenzioni impostano solo i valori predefiniti. Se si utilizza la convenzione ansi-string e quindi si crea una mappatura di colonne specifica per avere ". CustomType", funzionerà esattamente come ci si aspetterebbe. –
quetzalcoatl