У меня есть следующее отображение:
public class LogEntryMap
{
public LogEntryMap()
{
Map.Id(x => x.Id).GeneratedBy.Identity();
Map(x => x.Context).CustomSqlType("varchar").Length(512);
}
}
Однако использование SchemaExport
для генерации базы данных в SQL Server, 2008, сгенерированный сценарий игнорирует длину поэтому в действительности, это заканчивает тем, что было a varchar
с длиной 1:
create table OV_SAC.dbo.[LogEntry] (
Id BIGINT IDENTITY NOT NULL,
Context varchar null,
primary key (Id)
)
.CustomSqlType("varchar 512")
выдает исключение. И не определяя CustomSqlType
, строки отображаются на nvarchar
(который действительно уважает Length
свойство).
Какие-либо предложения?
Используйте .CustomType ("AnsiString")
вместо "String" по умолчанию
, и NHibernate будет использовать varchar
вместо nvarchar
.
Дох.
Map(x => x.Context).CustomSqlType("varchar (512)");
create table OV_SAC.dbo.[LogEntry] (
Id BIGINT IDENTITY NOT NULL,
Context varchar (512) null,
primary key (Id)
)