首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用流畅的NHibernate将枚举映射为int值?

要使用流畅的NHibernate将枚举映射为int值,您可以按照以下步骤操作:

  1. 首先,确保您已经安装了NHibernate并在项目中引用了相应的程序集。
  2. 在您的枚举类型中定义您的枚举值,例如:
代码语言:csharp
复制
public enum UserRole
{
    Admin = 1,
    User = 2,
    Guest = 3
}
  1. 在您的映射类中,使用Map方法将枚举属性映射为int类型:
代码语言:csharp
复制
public class UserMap : ClassMap<User>
{
    public UserMap()
    {
        Id(x => x.Id);
        Map(x => x.Name);
        Map(x => x.Role).CustomType<UserRole>();
    }
}

在这个例子中,我们将User类中的Role属性映射为int类型,并使用CustomType方法指定枚举类型。

  1. 在您的数据库表中,确保您的列类型为int,以便正确存储枚举值。
  2. 最后,在您的代码中使用NHibernate查询和保存枚举值,例如:
代码语言:csharp
复制
using (var session = sessionFactory.OpenSession())
{
    using (var transaction = session.BeginTransaction())
    {
        var user = new User { Name = "John Doe", Role = UserRole.User };
        session.Save(user);
        transaction.Commit();
    }
}

这样,您就可以使用NHibernate将枚举类型映射为int值,并在数据库中存储和查询这些值。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何使用Fluent NhibernateAutomapping进行OR Mapping映射

由于在项目中使用NHibernate来作为ORMapping构建数据访问层,那么就必须要配置Object和DataTable映射。...使用Fluent NHibernate最大好处是降低了出错机会,因为Fluent Nhibernate配置是使用C#来编写,可以智能感知,而且还能编译,不像原始XML配置,写错了都不知道。...对于多对多关系,把两个类对应表名进行排序,排前面,然后两个表名连接起来,中间使用“_”分割。...Hilo主键生成方式,使用一个表HIBERNATE_UNIQUE_KEY存储每个表流水。...TYPE列 } } 然后就是关于DiscriminateColumn中如何映射成对应Subclass,需要实现ISubclassConvention接口,代码如下: public class

1.1K10

Fluent NHibernate之旅二--Entity Mapping

本节内容: 简单实体映射 使用自定义类型映射实体属性 NHibernate实体映射(Entity Mapping)做非常好,虽然不是完美,但一些我们经常使用,基本上已经都支持了,而且配置也相对比较简单...类型,过后我演示一下如何使用枚举型。...Map(Expression> expression):与Id类似,对应NHibernateproperty,我这里只是简单映射,还有很多特性,在今后教程中会慢慢使用...二、使用自定义类型映射实体属性 NHibernate支持我们用自定义类型来映射属性,但因为我是初学,我真的不会,当然我在网上找到了相关资料,在此也不多说,就说说Fluent方式吧,在我映射自定义属性时候...在Order实体中,我们看到了订单状态我用了OrderState枚举类型,数据库存储类型tinyint,对于它映射,我们只需要: public class OrderMap : ClassMap<Order

98590

NHibernate学习笔记之一,Hello world!

NHibernate是一个面向.NET环境对象/关系数据库映射框架,主要应用在数据持久层,和其它ORM框架一样用来把对象模型表示对象映射到基于SQL关系模型数据结构中去。...准备工作: 需要使用.NET Framework 2.0或上以版本框架,准备NHibernate框架,本文使用3.3版,到目前NHibernate都还是基于.net framework 2.0,官方下载地址...2、新建项目并添加引用,NHibernate-3.3.0.GA-bin中“Iesi.Collections.dll”与“NHibernate”引用到项目中,如图2所示复制Configuration_Templates...4、POCO类编写写一个数据库映射文件,其实User.hbm.xml映射文件包含了对象/关系映射(ORM)所需元数据。元数据包含持久化类声明和属性到数据库映射。...每个持久化类都应该有一个标识属性,该文件必须输出到Bin目录中,否则会报错“xxx is not mapped”,如图3所示具体方法是:选择User.hbm.xml文件->属性->生成操作,设置这个属性

57420

NHibernate详解

4.构建一个让NHibernate知道如何连接数据库配置文件 5.使用NHibernateAPI 第一步:写构建表SQL 这里我们将使用是一个非常简单例子...第三步:写映射文件 现在我们有数据表和需要去映射.Net类。我们需要一种方式去让NHibernate知道如何从一个映射到另一个。这个任务依赖于映射文件来完成。...简要看一下,你发现NHibernate所要做工作。name属性正是我们.Net 类属性,column属性将是我们数据库里字段。...内嵌generator 标签告诉NHibernate 如何生成主键(它将恰当你生成主键,不管你指定何种类型,但你必须告诉它)。...那里有一堆属性你需要调整来确定如何NHibernate来访问数据库。再次说明,你可以在文档里获取更多信息。 NHibernate使用log4net来记录内部发生一切。

53230

NHibernate教程

NHibernate除了能将一张表映射一个对象,还可以表间关系变为对象属性。例如学生和课程间多对多关系就可以转化为学生类中一个课程集合属性。...由此可见,NHibernate不仅仅管理.Net类到数据库表映射,还提供数据查询和获取数据方法。因此采用NHibernate,可以大幅度减少开发时人工使用SQL处理数据时间。...二、NHibernate使用步骤 1.系统引入NHibernate库,并且配置NHibernate; 2.新建一个将要持久化.Net对象表; 3.构建一个需要被持久化.Net类; 4.构建一个可以让...NHibernate知道如何完成ORM映射XML文件; 5.使用NHibernateAPI来编程 三、NHibernate使用 1....使用NHibernateAPI进行编程 数据库编程不外乎“添加”、“删除”、“更新”,看看NHibernate如何实现这三种操作吧。

33010

如何使用Excel某几列有标题显示到新列中

如果我们有好几列有内容,而我们希望在新列中将有内容标题显示出来,那么我们怎么做呢? Excel - TEXTJOIN function 1....- - - - 4 - - - 在开始,我们曾经使用INDEX + MATCH方式,但是没有成功,一直是N/A https://superuser.com/questions/1300246/if-cell-contains-value-then-column-header...所以我们后来改为TEXTJOIN函数,他可以显示,也可以显示标题,还可以多个列有时候同时显示。...- - 4 - - - 15 Year 5 - - - - 5 - - - =TEXTJOIN(", ",TRUE,IF(ISNUMBER(B2:I2),$B$1:$I$1,"")) 如果是想要显示,...则: =TEXTJOIN(", ",TRUE,IF(ISNUMBER(B2:I2),B2:I2,"")) 其中,ISNUMBER(B2:I2)是判断是不是数字,可以根据情况改成是不是空白ISBLANK

11.3K40

NHibernate介绍「建议收藏」

C#可用以解决对象/关系数据库映射工具有多种,常见有EF (Entity Framework)、NHibernate、iBATIS等,各自优缺点及适用场景在此不做讨论,本文只对如何使用NHibernate...NHibernate使用核心组件。...要注意是所有需要持久化属性必须是虚拟,并且要开启延迟加载,所有数据模型类中公共方法必须是虚拟,哪怕它们并没有包含到映射文件中。 通常来讲,最好把所有的属性都设置虚拟。...创建NHibernate映射文件 Nhibernate使用XML映射文件来映射POCO到数据库对象。虽然在很多案例中这可能是一对一关系,但这并不是必定。...一旦XML文件创建好了,需要更改XML生成方式确保它被设置嵌入式资源,否则NHibernate不会读取这个XML文件,那么映射就不会生效了。

61420

NHibernate总结

现在项目中数据访问使用NHibernate一个ORM框架,小弟也是在后期加入项目组,之前对NHibernate就一直没有接触过,所以一直在学习NHibernate,都是一些很基础一些东西,写出来总结一下...NHibernate不仅仅管理.NET 类到数据库表映射(包括.NET 数据类型到SQL 数据类型映射),还提供数据查询和获取数据方法,大幅度减少我们开发时人工使用SQL和ADO.NET处理数据时间...开始使用NHibernate 我们亲自动手,一步一步实现一个NHibernate简单程序来,我只实现了简单增删改查功能。...封装Nhibernate底层操作,People.cs实体类,People.hbm.xml映射文件(把数据库表People映射到实体类People)。...这正是NHibernate映射文件发挥作用地方。映射文件包含了对象/关系映射所需元数据。元数据包含持久化类声明和属性到数据库映射

89140

Nhibernate入门与demo

学习和使用Nhibernate已经很久了,一直想写点东西和大家一起学习使用Nhibernate。博客园里也有很多大牛写了很多关于Nhibernate入门文章。...3、怎么搭建Nhibernate?      4、怎么使用Nhibernate?      好,我们就带着这几个问题开始我们Nhibernate旅程。    ...通俗讲,就是我们操作实体类,然后让ORM框架自动映射到数据库中。      而Nhibernate就是:.Net环境下实现ORM技术一个框架!     ...然后对应数据库表名。设置延迟加载false。具体可以参考Nhibernate官方文档。 3、一定要将这个文件属性:生成操作设置嵌入资源!     ...-- mapping files 领域对象映射文件所在程序集 --> 这是User.hbm.xml所在程序集。

31530

Fluent NHibernate之旅(三)-- 继承

经过了“开篇”和“简单映射”两篇文章,相信大家对Fluent NHibernate 有了一定了解了,FluentNHibernate实际就是对 NHibernate 映射一定扩展,我们能完全利用强类型...从这一篇开始,我们将使用Fluent NHibernate RC 1.0 版来进行演示,先前代码,我会另外进行说明 继承 在OOP中,继承作为OO中重要特性,如果NHibernate没有对它支持,...在说一下DiscriminateSubClassesOnColumn,这就是标识符一个映射方式,因为在RC版之前,我们可以使用SetAttribate方法,设定我们父类"not-null" 但是在...总结 这次说了一下继承映射方式,其实很早就写好了,正好遇到Fluent NHibernate发布了RC版,所以用了一些时间去学习了下,总的来说,这次升级呢非常好,可能会存在更多bug,但不影响我们正常使用...,而且现在更新也非常快,后面几张可能说下几种不常见映射和会遇到些麻烦,不过感觉园子里使用NHibernate的人不太多,关注度不多,不过不影响我继续写下去决心,这次也很偶然接触了FNT,确实有好多好地方可以借鉴一下

64480

C#——Nhibernate探索

这里有两个类库;可以分析得出,这两个类库是要被引用。 类库拥有对应XML,没找到具体使用该XML方法。所以暂时不去理他。 NHibernate.pdb应该是没有用。估计是作者忘记删除了。...调查结果: 对象与数据库映射是保存在XML文件中,于是我配置XML映射文件如下。 该XML文件属性,要求设置其生成操作为【嵌入资源】。 但我怕它丢失,还给他设置了始终复制属性。...然后复制文件,黏贴到测试控制台程序下,然后改名为《hibernate.cfg.xml》。...为什么说是探索之旅呢,因为,我也是首次配置Nhibernate,我平常更多使用Entity Framework。 文中使用了一些推断,猜测词语。那是因为,真的是在推断。...我并不清楚那几个点原理和含义,因为我没看Nhibernate原代码。 虽然本文是讲述,配置Nhibernate;但我更想讲述是,面对未知框架入手学习和使用方法。

47230

Fluent NHibernate RC 1.0 --升级内容

Fluent NHibernate Release Notes 1.0 : http://wiki.fluentnhibernate.org/Release_notes_1.0 FNT在映射时候,分为...Fluent Mapping(手动)和Auto Mapping(自动)两种方式,我在我“Fluent系列”中一直使用是手动方式,我觉得相对应好控制,而且也让我同时能更好学习NHibernate。...这一次他们完全丢弃了SetAttribute方法,完全依赖Fluent方式来进行实体映射,所以很多特性我也不知道如何映射,不过这时候你还是可以区GoogleGroups求助一下,强烈建议大家把它收藏一下吧...不过还有不完美的,DiscriminatorValue(string value)这个方法,如果我们标识符是字符串类型,那还好,但像我这种枚举类型,不得不硬编码了。...3、忽略属性(IgnoreProperty),这个不错,在以前,我们自动映射时候每个属性不管要不要都映射了,在RC版,我们可以使用如下代码,忽略这些属性不进行映射,非常不错,赞一个。

62350

NHibernate 多对多映射数据更新

NHibernate 多对多映射数据更新 最近在用 NHibernate 做多对多更新时突然发现 NHibernate 更新策略很差, 对多对多关系更新居然是先全部删除再插入全部数据, 感觉非常奇怪..., 再添加一个新角色, NHibernate 生成 SQL 语句如下(仅包含对关系表 User_Role 操作): DELETE FROM [User_Role] WHERE [UserId] =...Tip: Use set for many-to-many associations 发现了解决方案, 多对多映射 bag 改为用 set , 问题终于得到了解决, 改过后映射如下: Set(...不只是多对多, 如果你集合需要更新, NHibernate 推荐是: 19.5.2....sess.Flush(); 由此可见, bag 在多对多映射更新时性能较差, 如果不需要更新,则可以放心使用, 在需要更新时则 set 是更好选择。

92410

C# 数据操作系列 - 12 NHibernate增删改查

前言 上一篇《C# 数据操作系列 - 11 NHibernate 配置和结构介绍》 介绍了Nhibernate配置内容。这一篇将带领大家了解一下如何使用NHIbernate。...之前提到NHibernate继承了Hibernate一些传统:使用XML文件进行配置,这一点也是备受争议。...NHibernate映射文件 对于NHibernate映射文件有个约定名字: .hbm.xml 这里先为大家介绍一下映射文件格式: 1.1 hibernate-mapping 说明 <hibernate-mapping...接下来,让我们探索class如何映射。 1.2.1 id 任何一个映射都必须声明一个数据表主键,大多数类也必须有一个唯一标示字段用来区分不同实例。...不过在本篇内容完结之前,先补充一个NHibernateSqlDialect选: 数据库 Dialect 备注 DB2 NHibernate.Dialect.DB2Dialect DB2 for iSeries

1.1K20

如何使用libavcodec.yuv图像序列编码.h264视频码流?

对于其他编码器(如libx264)私有参数,AVCodecContext结构可以使用成员priv_data保存编码器配置信息。...format; }   AVPacket:   AVPacket结构用于保存未解码二进制码流一个数据包,在该结构中,码流数据保存在data指针指向内存区中,数据长度size字节。...在从编码器获取到输出AVPacket结构后,可以通过data指针和size读取编码后码流。...priv_data,"preset","slow",0); av_opt_set(codec_ctx->priv_data,"tune","zerolatency",0); } //使用指定...return -1; } return 0; } 3.编码循环体   在编码循环体中,至少需要实现以下三个功能:     (1)从视频源中循环获取输入图像     (2)当前帧传入编码器进行编码

20730

C# 数据操作系列 - 11 NHibernate 配置和结构介绍

前言 今天是NHibernate第二篇内容,通过上一篇内容,我们初步了解了NHibernate创建和使用。这一篇,我继续探索NHibernate背后秘密。嗯,就是这样。 1....配置项介绍 在上一篇文章中,我们介绍了一下如何设置NHibernate基本配置项,但是并未对配置项进行深入。...这一节,将带领大家看一下NHibernate中我们常用配置,因为配置项有很多,但一大部分通常情况都遇不到使用时候。...show_sql 是否在控制台中打印转换SQL语句,一般在调试过程中会设置true,用来确认生成SQL是否正确等。...总结 这是一篇枯燥乏味说明文,主要介绍了Nhibernate基本内容。下一章我们来试试,如何创建Nhibernate映射配置。

1.1K20
领券