Ich habe die folgende Abbildung zu sein:Einstellung String sql Art „varchar“ anstelle von „nvarchar“
public class LogEntryMap
{
public LogEntryMap()
{
Map.Id(x => x.Id).GeneratedBy.Identity();
Map(x => x.Context).CustomSqlType("varchar").Length(512);
}
}
jedoch SchemaExport
mit der Datenbank in SQL Server 2008 zu generieren, ignoriert das Skript generiert die Länge so in der Tat endet er ein varchar
mit einer Länge von 1 bis ist:
create table OV_SAC.dbo.[LogEntry] (
Id BIGINT IDENTITY NOT NULL,
Context varchar null,
primary key (Id)
)
.CustomSqlType("varchar 512")
eine Ausnahme ausgelöst. Und ohne die CustomSqlType
zu definieren, werden Zeichenfolgen auf nvarchar
zugeordnet (was die Length
-Eigenschaft berücksichtigt).
Irgendwelche Vorschläge?
Großartig !! Was nun, wenn ich ALLE meine Eigenschaften als varchar haben möchte, außer einem? Kann ich den CustomType für diese Entität im Mapping überschreiben, ohne von der Konvention überschrieben zu werden? –
@GerardoGrignoli: ja du kannst. Konventionen setzen nur die Standardeinstellungen. Wenn Sie ansi-string-Konvention verwenden und dann eine bestimmte Spaltenzuordnung erstellen, z. B. '.CustomType', wird es so funktionieren, wie Sie es erwarten. –
quetzalcoatl