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

如何在Fluent Nhibernate的MappingClass中编写NHibernate的hasMany表

在Fluent NHibernate的Mapping Class中编写NHibernate的hasMany表,可以通过使用Fluent NHibernate的API来实现。具体步骤如下:

  1. 首先,确保你已经在项目中引入了Fluent NHibernate的相关依赖。
  2. 创建一个新的Mapping Class,该类将用于映射数据库表和实体类之间的关系。
  3. 在Mapping Class中,使用ClassMap<T>泛型类来指定要映射的实体类T
  4. 使用HasMany方法来定义hasMany关系。该方法接受一个Lambda表达式,用于指定关联的集合属性。
  5. 在Lambda表达式中,使用KeyColumn方法来指定关联的外键列。
  6. 使用Cascade方法来指定级联操作的行为,例如保存、更新、删除等。
  7. 使用Inverse方法来指定关联的集合属性是否反向维护关系。
  8. 使用Table方法来指定关联的数据库表名。

下面是一个示例代码:

代码语言:txt
复制
public class ParentEntityMap : ClassMap<ParentEntity>
{
    public ParentEntityMap()
    {
        Table("ParentTable");

        Id(x => x.Id);

        HasMany(x => x.ChildEntities)
            .KeyColumn("ParentId")
            .Cascade.All()
            .Inverse()
            .Table("ChildTable");
    }
}

在上述示例中,ParentEntity是父实体类,ChildEntity是子实体类。ParentTableChildTable分别是父实体和子实体对应的数据库表名。ParentId是子实体表中的外键列,用于关联父实体。

推荐的腾讯云相关产品是TencentDB for MySQL,它是一种高性能、可扩展的关系型数据库服务。您可以通过以下链接了解更多信息: TencentDB for MySQL

请注意,以上答案仅供参考,具体实现可能因项目需求和环境而有所不同。

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

相关·内容

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

,我们使用了Fluent NHibernateMapping方式代替XML配置。...使用Fluent NHibernate最大好处是降低了出错机会,因为Fluent Nhibernate配置是使用C#来编写,可以智能感知,而且还能编译,不像原始XML配置,写错了都不知道。...NHibernate配置方式仍然是需要编写Mapping代码,也就意味着,如果我更改class或者DataTable时候,还要对应更改该Mapping文件。...更多修改意味着更多风险,为了减少这方面的风险,同时为了减少配置工作量,所以在最新项目中采用了Fluent NHibernateAutomapping。...(比如CostCenter类对应COST_CENTER) 类主键使用Id命名,主键使用名+“_ID”命名方式。

1.1K10

Fluent NHibernate之旅(四)-- 关系(

接着上一篇,我们继续讲解ORM关系。在数据库设计,我们最多打交道,要算一对多关系了,延续我们示例,我们来讲解一下一对多关系。...Fluent NHibernate之旅系列导航: 一、开篇:ISessionFactory Configuration 二、实体映射:Entity Mapping 三、继承映射:Inheritence...映射 不得不赞叹一下 Fluent Nhibernate ,有了它,我们映射一切都变得如此简单,先来看看Model吧,用户订单列表,对于用户来说,暂时是不需要排序,所以我们可以使用ISet作为Order...我们在Output,能看到NHibernate生成Sql语句,测试也成功,说明我们刚刚是立即加载了Orders属性。...如果您在使用Fluent Nhibernate时候也遇到了问题,可以及时与我联系或求助于Fluent Google Groups。 应“亦续缘”要求,我把代码整理了下,发上来,便于大家学习。

689100

Fluent NHibernate之旅

ORM大家都非常熟悉了吧,我相信也有很多朋友正在用自己或者一些公开框架,而最常用而且强大,非Hibernate了(NetNHibernate),网上文档非常多,不过在博客园,介绍NHibernate...这是官方说明,大体的话也就是用编程方式进行配置,让你能更好理解,不需要编写复杂映射文件,它能完全替换NHibernate映射文件,让你在映射时候能使用C#强类型方式。...在NHibernate,ISession是操作数据核心,我们需要通过SessionFactory来建造ISession来进行数据交互。...三、传统方式和Fluent对比      上面的演示相信大家都能看明白,两者之间对比也比较明显显露出来,传统方式我们只需要编写正确配置文件,相对比较灵活,一些修改的话都可以在配置文件中进行更新...方法,不过Fluent更符合人类思考行为,而且有VS这么强大IDE,在编写代码同时,能够享受强大智能感知。

1K60

Fluent NHibernate 之旅 导航篇

ORM大家都非常熟悉了吧,我相信也有很多朋友正在用自己或者一些公开框架,而最常用而且强大,非Hibernate了(NetNHibernate),网上文档非常多,不过在博客园,介绍NHibernate...非常少,李哥NHibernate系列(NHibernate之旅)不失为一个经典,对于新手我们,需要完全掌握还需要很长一段路,对于新手来说,最初配置是非常头大一件事情,好在老赵推荐一个开源框架...Fluent NHibernate,有了它,我们可以完全脱离配置文件,不过博客园中介绍Fluent NHibernate文章非常少,而且官方文档也还没有完全,所以对于我来说也就一点一点摸索起来,这也激起了我写这个笔记欲望...,废话不说了,下面就介绍Fluent NHibernate,大家也一起来体验一下Fluent Nhibernate快感吧。...继承 [原创]Fluent NHibernate之旅(四)-- 关系(上) [原创]Fluent NHibernate之旅(四)-- 关系() [原创]Fluent NHibernate之旅(四

64970

Fluent NHibernate之旅二--Entity Mapping

接着上一篇,今天我们说说ORMMapping。如果你要体验NHibernate强大,首先你就要学会配置,包括SessionFactory和Mapping配置。...回答是当然需要,因为我们这里属性名与主键名是相同,所以没有进行设置,如果你数据库主键名是ID,这里我们只需要Id(m => m.ProductID).ColumnName(“ID”),你可以看到上述映射中...映射做好了,接下来我们在NHibernate把映射加到配置。...为了接下来方便,我把FluentMapping都生成到我传统方式Mapping目录,加入到项目,设置成嵌入资源,一切都为了以后教程,换句话说以后教程,我一般都会使用Fluent来进行映射...前几天开篇“Fluent NHibernate之旅一”,反响不是很好,或许大家用NHibernate真的很少,或许我写不够好,或许。。。。

98790

Fluent NHibernate之旅(三)-- 继承

经过了“开篇”和“简单映射”两篇文章,相信大家对Fluent NHibernate 有了一定了解了,FluentNHibernate实际就是对 NHibernate 映射一定扩展,我们能完全利用强类型...从这一篇开始,我们将使用Fluent NHibernate RC 1.0 版来进行演示,先前代码,我会另外进行说明 继承 在OOP,继承作为OO重要特性,如果NHibernate没有对它支持,...,一定看到过了,其实就是把父类、子类所有属性放到一个,这样做好处就是我们不需要建立其他,一张表格全搞定,但缺点也显而易见,在属性少情况下或许没有什么,但是多了以后,我们维护、扩展就变得相对麻烦...在子类,我们必须制定对应标识符值,这里又出现败笔了,只能设定string类型,My God,变相SetAttribute,我觉得这个已经脱离了Fluent称号了(在RC升级介绍已经说明)。...Table per subclass 在这种方式,一个父类包括了一些共同属性,子类除了主键外,就只有属于自己属性。

64480

Fluent NHibernate之旅(四)-- 关系(上)

经过了前面三篇介绍,相信大家对Fluent NHibernate已经有一定了解了,在我们学习Fluent 也已经进入了RTM版本。...这次版本发布离RC版只有半个月不到,修正了很多bug,同时补充了大量功能,在每天更新,也看到了大量单元测试,我们相信Fluent NHibernate 已经相对稳定成熟了。...Mapping 今天我们将说一下ORMR映射,我们现在数据库大多都是关系型数据库了,所以可以说关系在我们数据库设计也是非常重要部分,NHibernate也非常重视这一块,但在传统方式,配置就比较麻烦...,不是说我们Fluent能简单,只是传统方式xml看上去不太美观,而Fluent这种代码式方式,更能符合我们Developer习惯。...数据库关系 数据库关系一般有: 1、一对一 2、一对多 3、多对多 开始 结合我们前三个系列示例,我们这一次加一个用户[User],目的就是存储用户信息所用,再加一个UserDetail,作为用户详细信息

1.2K60

Fluent Nhibernate之旅(五)--利用AutoMapping进行简单开发

Fluent Nhibernate(以下简称FN)发展到如今,已经相当成熟了,在Nhibernate书中也相应推荐了使用FN来进行映射配置,之前写FN之旅至今还有很多人会来私信我问题,说来惭愧,从...,您需要按照一定规范编写对象。...刚我们测试报错,是因为EmployeeName是个UserName类,NhibernateComponent,我在FN之旅四(上)中有介绍到,默认情况下映射根据字段映射到数据库,所以上面的测试会报错...今天介绍了AutoMapping简单介绍,但在使用您要时刻注意,AutoMapping是有很多限制,比如Id,比如Component等,当然我们可以通过重写DefaultAutomappingConfiguration...Fluent Nhibernate确实是个好东西,让我在开发上省去了很多时间,今天虽然介绍了AutoMapping,但我不推荐您在您项目中使用,用起来没手感(个人感觉),需要约定东西太多了,对于数据库结构也得按照他契约来

92560

NHibernate 代码映射实体类

NHibernate 代码映射实体类 关于代码映射 NHibernate 3.2 自带了代码映射机制, 作为 xml 映射之外一种映射方式, 由于推出时间比较晚, 所以资料相对比较少, 而且与社区版...Fluent Mapping 和 Attribute Mapping 不同, 有其独特设计风格。...下面就通过一个实例来说明怎么使用 NHibernate 自带代码映射。 实体关系 要映射类关系图如下: ?...public ProductMapping() { // 此处添加映射代码 } } 映射到数据 使用 Table 函数将类映射到制定数据: Table("product")...Attribute Mapping 相比, 对原来 POCO 实体类没有污染 (Attribute) ; NHibernate 自带, 可以说是一等公民, 而 Fluent Mapping 是第三方维护

86910

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

不过,有社区爱好者开发了一个名为《Fluent NHibernate项目,用来支持NHibernate流式配置。...,默认情况从Property 读取 default-lazy:可选,默认是true,是否启动延迟加载 1.2 class配置 一般情况下,class节点只需要指定name和table就可以了。...接下来,让我们探索class如何映射成。 1.2.1 id 任何一个映射都必须声明一个数据主键,大多数类也必须有一个唯一标示字段用来区分不同实例。...column:对应数据列名 type:数据库类型 1.2.3 many-to-one 在Nhibernate,多对一配置是在一一端,表示该类有一个外键导航。...,不同地方在于一对一需要在双方映射关系里均要维护,在有外键/实体 添加 constrained=“true”。

1.1K20

Nhibernate_nhibernate与ef区别

NHibernate用于把你.Net对象持久化到底层关系数据库.你完全不用自己编写Sql语句去操作这些对象,NH会代替你做.你代码里面只需要关心这些对象,NH生成sql语句并能为你取到正确东西...开发过程 HNibernate将会有一些工具帮助你,:生成schema,根据映射文件(Mapping file)生成类,并更新schema(一个新开发者建议).然而,在本文档,前提是你已经手动数据库创建喝....Net类编写......这里是我们要做: 1. 在数据库创建把.Net类持久化对应. 2. 创建需要被持久化.Net类. 3....步骤3:编写映射文件(Mapping File) 现在我们有了数据库和.Net类,我们还需要告诉NH怎样在数据库和类之间映射.这就需要映射文件了.最简捷(也是可维护性最好)方法就是为每一个类编写一个映射文件

55330

NHibernate学习笔记之一,Hello world!

开始做一个简单增删改查示例,如图1示例:  图1 1、创建数据库与,这里假设使用NibernateDemo数据库,Users包括(id,name,pwd)字段,id是主键自动增长,name与pwd...2、新建项目并添加引用,将NHibernate-3.3.0.GA-bin“Iesi.Collections.dll”与“NHibernate”引用到项目中,如图2所示复制Configuration_Templates...文件夹对应数据库配置文件,这里使用MSSQL,所以复制“MSSQL.cfg.xml”,并对NHibernate配置信息适当修改 。...3、编写实体类(POCO,Plain Old CLR Objects),映射文件包含POCO类映射到一个或者多个数据库元数据信息。User.cs文件如下所示。...帮助类,Isession是NHibernate工作单元,它是一个持久化管理器,我们通过ISession来从数据库存取数据。

57620

Fluent NHibernate RC 1.0 --升级内容

Fluent NHiberante(FNT) RC 1.0 已经在上个星期发布了,其中很多东西被废弃,有些方法改进,还有一些命名更贴切,虽说不是很完美,但已经做非常完善了,如果大家在使用,发现bug...或者没有找到相应方法,大家可以去 Fluent GoogleGroups 发贴,FNT作者James Gregory及时回复。...Fluent NHibernate Release Notes 1.0 : http://wiki.fluentnhibernate.org/Release_notes_1.0 FNT在映射时候,分为...Fluent Mapping(手动)和Auto Mapping(自动)两种方式,我在我Fluent系列”中一直使用是手动方式,我觉得相对应好控制,而且也让我同时能更好学习NHibernate。...Fluent Mapping 1、修改一些方法名:把一些繁琐方法名改相对简单而不失其含义。

62350

NHibernate实践与模式

NHibernate实践与模式 NHibernate是一款非常优秀O/R mapping开源框架,再还没有.net时候它已经存在于java环境。...CURD操作语句可以从源代码看,它是生成是参数形势sql脚本并且支持特别的参数,,oracleto_date,to_char等; 从上图可以看出实现了数据库无关性,开发人员无须关心底层数据库类型...开发步骤 一般我们是在先有数据库结构情况下,一层一层往上写,先创建数据库,然后写数据库访问层代码(可以通过一些通用ado.net类库完成 Enterpriselibrary),接下来开始编写业务曾代码...然后再去创建数据库,和UI部分; 我还是按在有数据情况下如何用NHibernate作开发 1.用MyGeneration创建实体类和mapping文件选择NHibernate lujan99 1.06...减少了代码编写工作。

79540

近期开发遇到问题总结

最近准备把后台管理系统重新设计开发下,使用了bootstrap,在网上找了个漂亮后台模板:sb2-admin,在使用遇到了不少问题,总结下,以免以后忘记。...1、EF5利用NuGet升级到EF6后,一些Attribute冲突[未解决]:       我原先数据驱动使用Fluent Nhibernate +Nhibernate+MSSQL2005...,本来想玩玩EF,而且现在新创建MVC项目模板,都会自带EF。...,这次因为后台首页想统计下数据,就利用了存储过程,但在使用却发现FN目前还不支持存储过程(点击查看官方),没有办法,只能利用Fluent Configuration和HBM Configuration...3、在使用Web Api时候,返回类型序列化冲突: 因为用新模板很炫,想把数据请求都使用Web Api来进行,但在使用时候,返回json数据,都返回了k_BackingField

825100

Nhibernate_juan benet

NHibernate用于把你.Net对象持久化到底层关系数据库.你完全不用自己编写Sql语句去操作这些对象,NH会代替你做.你代码里面只需要关心这些对象,NH生成sql语句并能为你取到正确东西...开发过程 HNibernate将会有一些工具帮助你,:生成schema,根据映射文件(Mapping file)生成类,并更新schema(一个新开发者建议).然而,在本文档,前提是你已经手动数据库创建喝...在数据库创建把.Net类持久化对应. 2. 创建需要被持久化.Net类. 3. 创建映射文件,以告诉NH怎样持久化这些类属性. 4....步骤1:创建数据库 我们正在做是一个非常简单NH示例.在这个例子里面,我们实现一个基本用户管理子系统.我们将会使用一个user(sql server 2000): use NHibernate...步骤3:编写映射文件(Mapping File) 现在我们有了数据库和.Net类,我们还需要告诉NH怎样在数据库和类之间映射.这就需要映射文件了.最简捷(也是可维护性最好)方法就是为每一个类编写一个映射文件

35550

NHibernate总结

NHibernate不仅仅管理.NET 类到数据库映射(包括.NET 数据类型到SQL 数据类型映射),还提供数据查询和获取数据方法,大幅度减少我们开发时人工使用SQL和ADO.NET处理数据时间...,其中People实体类字段要设置为virtual。每个文件详细代码在下面介绍 (2)     在NH.Data层引用Nhibernate相关DLL ?...首先,我们要从ISessionFactory获取一个ISession(NHibernate工作单元)。ISessionFactory可以创建并打开新Session。...ISessionFactory通常是个线程安全全局对象,只需要被实例化一次。我们可以使用GoF23单例(Singleton)模式在程序创建ISessionFactory。...这个实例我编写了一个辅助类NHibernateHelper 用于创建ISessionFactory并配置ISessionFactory和打开一个新Session单线程方法,之后在每个数据操作类可以使用这个辅助类创建

89140

NHibernate详解

4.构建一个让NHibernate知道如何连接数据库配置文件 5.使用NHibernateAPI 第一步:写构建SQL 这里我们将使用是一个非常简单例子...假设你正在为你网站开发一个基本用户管理子系统。我们将使用如下一张User(假定你已经设置好一个数据库—在例子里我称它为NHibernate)。...第一个有趣标签是class。这里我们将映射类型名称(类名,装配件)到我们数据库User,这里和Hibernate有一点点不同。你将不得不告诉NHibernate从何处提取对象。...连接配置信息(如果你愿意,你可以在代码实现)。...你数据库里有一张User。 现在可以在你代码恰当简洁使用NHibernate。简化版本如下 1. 创建一个Configuration对象 2.

54530
领券