在NHibernate映射中设置列比较

在NHibernate映射中设置列比较,nhibernate,nhibernate-mapping,collation,Nhibernate,Nhibernate Mapping,Collation,我正在研究NHibernate映射,我们需要在特定列上指定collate。最好在映射期间 其想法是,在NHibernate创建模式后,它将如下所示: CREATE TABLE [dbo].[Foo] ( [Bar] NVARCHAR (128) NULL **collate sql_latin1_general_cp1_cs_as**, [BarTwo] NVARCHAR (max) ); 我目前正在使用Fluent,但是xml解决方案也可以。我发现我可以

我正在研究NHibernate映射,我们需要在特定列上指定collate。最好在映射期间

其想法是,在NHibernate创建模式后,它将如下所示:

CREATE TABLE [dbo].[Foo] (
    [Bar]        NVARCHAR (128) NULL **collate sql_latin1_general_cp1_cs_as**,
    [BarTwo]     NVARCHAR (max)
);

我目前正在使用Fluent,但是xml解决方案也可以。

我发现我可以将collate添加到CustomSqlType。 这确实意味着我需要始终添加CustomSqlType,从而使映射数据库依赖

.CustomSqlType("nvarchar(128) collate Latin1_General_CI_AS")
但就目前而言,这似乎奏效了。
有人有其他/更好的想法/主张吗?

作为一种解决方法,您可以尝试
.Default(“collate sql\u latin1\u general\u cp1\u cs\u as”)
?抱歉,这不起作用。然而,我通过使用
.CustomSqlType(“nvarchar(128)collate-Latin1\u-General\u-CI\u-AS”)
找到了一个解决方案。但是,这意味着我需要使用sql类型,不能依赖于Length属性。