NHibernate 命名约定 - 消除关键字冲突

发布于 2024-08-05 16:39:07 字数 241 浏览 4 评论 0原文

当 NHibernate 使用 FluentNHibernate 生成列名时,如何避免关键字冲突?

NHibernate 为我生成了这个,并且“Key”是冲突的。

create table Setting (
       Key NVARCHAR(MAX) not null,
       Value NVARCHAR(MAX) null,
       primary key (Key)
)

How do I escape keyword conflicts when NHibernate generates my column names using FluentNHibernate?

NHibernate generated this for me and "Key" is a conflict.

create table Setting (
       Key NVARCHAR(MAX) not null,
       Value NVARCHAR(MAX) null,
       primary key (Key)
)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

心凉怎暖 2024-08-12 16:39:07

我有类似的问题。修复方法是使用 FluentNHibernate 的 Column 属性部分将键属性的列名称放在括号中。

这是一个具有有问题的 Key 属性的实体:

public class MyEntity
    {
        public virtual int Id { get; set; }
        public virtual string Key { get; set; }
    }

以下是如何在映射中指定列名称:

public class MyEntityMap : ClassMap<MyEntity>
    {
        public MyEntityMap()
        {
            Id(x => x.Id).GeneratedBy.Assigned();

            // Note the brackets around Key
            Map(x => x.Key).Column("[Key]").Not.Nullable();
        }
    }

I had a similar problem. The fix is to use FluentNHibernate's Column property part to put brackets around the column name for the key property.

Here is an entity with a problematic Key property:

public class MyEntity
    {
        public virtual int Id { get; set; }
        public virtual string Key { get; set; }
    }

Here is how to specify the column name in the mapping:

public class MyEntityMap : ClassMap<MyEntity>
    {
        public MyEntityMap()
        {
            Id(x => x.Id).GeneratedBy.Assigned();

            // Note the brackets around Key
            Map(x => x.Key).Column("[Key]").Not.Nullable();
        }
    }
七堇年 2024-08-12 16:39:07

试试这个:

create table Setting (
       [Key] NVARCHAR(MAX) not null,
       Value NVARCHAR(MAX) null,
       primary key (Key)
)

SQL Server 允许您通过在文本两边加上方括号来转义保留字。

Try this:

create table Setting (
       [Key] NVARCHAR(MAX) not null,
       Value NVARCHAR(MAX) null,
       primary key (Key)
)

SQL Server allows you to escape reserved words by putting square brackets around the text.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文