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

在Fluent NHibernate中映射复合键

在Fluent NHibernate中映射复合键时,需要使用CompositeId方法来定义复合键。复合键是由多个属性组成的主键,通常用于表示两个或多个实体之间的关系。以下是一个简单的示例:

代码语言:csharp
复制
public class OrderMap : ClassMap<Order>
{
    public OrderMap()
    {
        CompositeId()
            .KeyProperty(x => x.CustomerId, "CustomerId")
            .KeyProperty(x => x.OrderNumber, "OrderNumber");
    }
}

在这个示例中,我们定义了一个Order类,它有两个属性CustomerIdOrderNumber,它们组成了复合键。我们使用CompositeId方法来定义复合键,并使用KeyProperty方法来指定每个键属性的映射。

需要注意的是,复合键必须具有唯一性,因此在定义复合键时需要确保每个属性都有唯一的值。此外,复合键的属性通常需要在数据库中定义为主键,以确保数据的完整性和一致性。

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

相关·内容

如何使用Fluent Nhibernate的Automapping进行OR Mapping映射

由于项目中使用了NHibernate来作为ORMapping构建数据访问层,那么就必须要配置Object和DataTable的映射。...,我们使用了Fluent NHibernate的Mapping方式代替XML配置。...使用Fluent NHibernate的最大好处是降低了出错的机会,因为Fluent Nhibernate的配置是使用C#来编写,可以智能感知,而且还能编译,不像原始的XML配置,写错了都不知道。...更多的修改意味着更多的风险,为了减少这方面的风险,同时为了减少配置的工作量,所以最新的项目中采用了Fluent NHibernate的Automapping。...我们只需要定义好映射的规则,就可以不对每个表和类分别编写映射配置,而是按照规则进行自动的Mapping工作。这样修改class或者DataTable时,只需要修改类和表即可,不需要再修改配置文件。

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。 应“亦续缘”的要求,我把代码整理了下,发上来,便于大家学习。

699100

连贯NHibernate 1.0正式发布

连贯NHibernateFluent NHibernate) 是通过编程方式而不是使用XML配置文件创建NHibernate映射的API。...它的目标是项目中运用NHibernate时减少所遇到的困难,提供更好的可读性、可测试性和编译时的安全性。...连贯NHibernate降低了复杂性,并进一步加强了约定胜于配置的原则,即任何一个映射的最常用设置是默认的。 除了编译时的检查外连贯NHibernate还为你的映射的测试提供了一个健壮的API。...Wiki上有教程告诉怎么用,园子里的inday的几篇文章可以先看一下: [原创]Fluent NHibernate之旅 [原创]Fluent NHibernate之旅二--Entity Mapping...[原创]Fluent NHibernate之旅(三)—继承 codeproject上也有一篇针对RC的文章:Fluent NHibernate and Linq2NHibernate – Demo Project

62370

Fluent NHibernate之旅二--Entity Mapping

的ClassMap类,然后构造方法完成映射方法,就能完成传统方式的映射了。...Map(Expression> expression):与Id类似,对应NHibernate的property,我这里只是简单的映射,还有很多特性,今后的教程中会慢慢使用...对于我这种新手来说,Fluent更适合我,因为我可以用它来进行学习NHibernate映射做好了,接下来我们NHibernate映射加到配置。...二、使用自定义类型映射实体属性 NHibernate支持我们用自定义的类型来映射属性,但因为我是初学,我真的不会,当然我在网上找到了相关的资料,在此也不多说,就说说Fluent的方式吧,映射自定义属性的时候...为了接下来的方便,我把Fluent的Mapping都生成到我传统方式的Mapping目录,加入到项目,设置成嵌入的资源,一切都为了以后的教程,换句话说以后的教程,我一般都会使用Fluent来进行映射

99490

Fluent NHibernate之旅

ORM大家都非常熟悉了吧,我相信也有很多朋友正在用自己或者一些公开的框架,而最常用而且强大的,非Hibernate了(NetNHibernate),网上的文档非常多,不过博客园,介绍NHibernate...这是官方的说明,大体的话也就是用编程的方式进行配置,让你能更好的理解,不需要编写复杂的映射文件,它能完全替换NHibernate映射文件,让你在映射的时候能使用C#的强类型方式。...NHibernate,ISession是操作数据的核心,我们需要通过SessionFactory来建造ISession来进行数据的交互。...SessionFactory反映了数据库映射关系,我们来看下配置: ...下面我们代码创建一个SessionFactory,NHibernate建议我们一个应用程序中使用一个数据库一个SessionFactory,这里我们用单数据库,代码如下: public static

1K60

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

经过了前面三篇的介绍,相信大家对Fluent NHibernate已经有一定的了解了,我们学习Fluent 也已经进入了RTM版本。...这次的版本发布离RC版只有半个月不到,修正了很多bug,同时补充了大量的功能,每天更新,也看到了大量的单元测试,我们相信Fluent NHibernate 已经相对稳定成熟了。...Fluent NHibernate之旅系列导航: 一、开篇:ISessionFactory Configuration 二、实体映射:Entity Mapping 三、继承映射:Inheritence...Mapping 今天我们将说一下ORM的R映射,我们现在的数据库大多都是关系型数据库了,所以可以说关系我们数据库设计也是非常重要的部分,NHibernate也非常重视这一块,但在传统方式,配置就比较麻烦...映射 Fluent NHibernate 映射代码: public class UserMap : ClassMap { public UserMap() {

1.2K60

Fluent NHibernate RC 1.0 --升级内容

Fluent NHiberante(FNT) RC 1.0 已经在上个星期发布了,其中很多东西被废弃,有些方法改进,还有一些命名更贴切,虽说不是很完美,但已经做的非常完善了,如果大家使用,发现bug...Fluent NHibernate Release Notes 1.0 : http://wiki.fluentnhibernate.org/Release_notes_1.0 FNT映射的时候,分为...Fluent Mapping(手动)和Auto Mapping(自动)两种方式,我我的“Fluent系列”中一直使用的是手动方式,我觉得相对应的好控制,而且也让我同时能更好的学习NHibernate。...3、分开SubClass映射RC版以前,不管是SubClass还是JoinSubClass,我们都只需要映射在父类中就可以了,但这一做法RC版已经不再提倡,我们要分开映射,我相信这个做法是好的,...3、忽略属性(IgnoreProperty),这个不错,以前,我们自动映射的时候每个属性不管要不要都映射了,RC版,我们可以使用如下代码,忽略这些属性不进行映射,非常不错,赞一个。

63150

Fluent NHibernate之旅(三)-- 继承

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

66080

Fluent NHibernate 之旅 导航篇

ORM大家都非常熟悉了吧,我相信也有很多朋友正在用自己或者一些公开的框架,而最常用而且强大的,非Hibernate了(NetNHibernate),网上的文档非常多,不过博客园,介绍NHibernate...,废话不说了,下面就介绍Fluent NHibernate,大家也一起来体验一下Fluent Nhibernate的快感吧。...导航: [原创]Fluent NHibernate之旅开篇 [原创]Fluent NHibernate之旅二--Entity Mapping [原创]Fluent NHibernate之旅(三)—...继承 [原创]Fluent NHibernate之旅(四)-- 关系(上) [原创]Fluent NHibernate之旅(四)-- 关系() [原创]Fluent NHibernate之旅(四...)-- 关系(下) [原创]Fluent Nhibernate之旅(五)--利用AutoMapping进行简单开发 相关文章: Fluent NHibernate RC 1.0 --升级内容 相关站点

65970

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

Fluent Nhibernate(以下简称FN)发展到如今,已经相当成熟了,Nhibernate的书中也相应的推荐了使用FN来进行映射配置,之前写的FN之旅至今还有很多人会来私信我问题,说来惭愧,从...Mapping 五、一对多映射:One-to-Many Mapping 六、Fluent NHibernate之旅(四)-- 关系(下) 安装 现在在项目中使用FN很方便,使用Nuget管理就可以了...NuGet下载FluentNhibernate后,会自动下载安装Nhibernate及Iesi。...刚我们的测试报错,是因为Employee的Name是个UserName类,Nhibernate的Component,我FN之旅四(上)中有介绍到,默认情况下映射根据字段映射到数据库的,所以上面的测试会报错...Fluent Nhibernate确实是个好东西,让我开发上省去了很多时间,今天虽然介绍了AutoMapping,但我不推荐您在您的项目中使用,用起来没手感(个人感觉),需要约定的东西太多了,对于数据库结构也得按照他的契约来

94060

NHibernate 代码映射实体类

NHibernate 代码映射实体类 关于代码映射 NHibernate 3.2 自带了代码映射机制, 作为 xml 映射之外的一种映射方式, 由于推出的时间比较晚, 所以资料相对比较少, 而且与社区版的...Fluent Mapping 和 Attribute Mapping 不同, 有其独特的设计风格。...下面就通过一个实例来说明怎么使用 NHibernate 自带的代码映射。 实体关系 要映射的类关系图如下: ?...总结 与 xml 映射以及其它第三方映射相比, 使用 NHibernate 代码映射有下面几个优点: 不需要使用 xml 文件即可完成, 可以充分利用 IDE 智能提示, 重构, 以及编译时检查; 与...Attribute Mapping 相比, 对原来的 POCO 实体类没有污染 (Attribute) ; NHibernate 自带, 可以说是一等公民, 而 Fluent Mapping 是第三方维护的

88210

近期开发遇到的问题总结

最近准备把后台管理系统重新设计开发下,使用了bootstrap,在网上找了个漂亮的后台模板:sb2-admin,使用遇到了不少问题,总结下,以免以后忘记。...1、EF5利用NuGet升级到EF6后,一些Attribute冲突[未解决]:       我原先的数据驱动使用的是Fluent Nhibernate +Nhibernate+MSSQL2005...FN目前还不支持存储过程(点击查看官方),没有办法,只能利用Fluent Configuration和HBM Configuration混合的映射方式。...3、使用Web Api的时候,返回类型序列化冲突: 因为用的新模板很炫,想把数据请求都使用Web Api来进行,但在使用的时候,返回的json数据,都返回了k_BackingField...,这下傻了,查看了文档,说属性或者字段标记,使用DataContactAttribute和DataMemberAttribute,试了以后,发觉还是不行。

834100

NHibernate联合主键详细示例

使用NHibernate实现一对多,多对一的关联很是简单,可如果要用复合主键实现确实让人有些淡淡的疼。虽然很淡疼但还是要去抹平这个坑,在下不才,愿意尝试。...二、关键步骤 注解如何实现复合主键 根据官方文档说明,联合主键最好是一个独立的类,需要重载Equals和GetHashCode方法,且标记为可序列化。...实现一对 和 多对一的映射 这步没有多大难度,主要处理好注解的顺序即可,以及OneToMany时联合主键如何设置的问题.示例代码如下: [Bag(0, Name = "Childs", Cascade...Parent的时候,与联合主键共用了一个字段GroupNumber,导致NHibernate映射转换的时候会多计算出一个需要填充的值,但SqlParameterCollection又少一个位置。...,导致映射出错 四、终于实现了,总结 类都必须可以序列化,也就是要还serializable标注 继承BaseInfo实现联合主键(不推荐使用) Save时,如果用session.merge方法组合缓存与修改对象

1.5K80

​Redis:集合复制

问题描述: 由于某种原因,我必须需要将某个集合的(Key)复制一份副本。并移动到目标库 拿到这个问题,脑海里一共有两种方式 将所有的此集合的所有的值从redis里面读取出来,然后再存进去。...如果二者有一个且仅有一个为空那么他们返回的结果为有值的集合 方案一 将所有的此集合的所有的值从redis里面读取出来,然后再存到目标库。 思路清晰,不再过多赘述。 ?...取给定集合的并集存储目标集合 ? 取给差集合的并集存储目标集合 ?...destination key [key ...] summary: Add multiple sets and store the resulting set in a key 添加多个集合并将生成的集合存储一个...destination key [key ...] summary: Subtract multiple sets and store the resulting set in a key 减去多个集合并将得到的集合存储一个

1.8K30

Python在生物信息学的应用:字典中将映射到多个值上

我们想要一个能将(key)映射到多个值的字典(即所谓的一多值字典[multidict])。 解决方案 字典是一种关联容器,每个映射到一个单独的值上。...如果想让映射到多个值,需要将这多个值保存到另一个容器(列表、集合、字典等)。...即使目前字典并不存在这样的)创建映射实体。...如果你并不需要这样的特性,你可以一个普通的字典上使用 setdefault() 方法来代替。...因为每次调用都得创建一个新的初始值的实例(例子程序的空列表 [] )。 讨论 一般来说,构建一个多值映射字典是很容易的。但是如果试着自己对第一个值做初始化操作,就会变得很杂乱。

9910
领券