首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >NHibernate命名约定-消除关键字冲突

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

Stack Overflow用户
提问于 2009-09-29 11:56:37
回答 2查看 714关注 0票数 2

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

NHibernate为我生成了这个,而"Key“是一个冲突。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create table Setting (
       Key NVARCHAR(MAX) not null,
       Value NVARCHAR(MAX) null,
       primary key (Key)
)
EN

回答 2

Stack Overflow用户

发布于 2013-04-19 17:23:47

我也遇到过类似的问题。修复方法是使用FluentNHibernate的列属性部分将键属性的列名用括号括起来。

下面是一个键属性有问题的实体:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class MyEntity
    {
        public virtual int Id { get; set; }
        public virtual string Key { get; set; }
    }

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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();
        }
    }
票数 1
EN

Stack Overflow用户

发布于 2009-09-29 11:59:57

试试这个:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create table Setting (
       [Key] NVARCHAR(MAX) not null,
       Value NVARCHAR(MAX) null,
       primary key (Key)
)

SQL Server允许您通过用方括号将文本括起来来转义保留字。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1494588

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文