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

如何在Fluent NHibernate ClassMap类中指定表名?

在Fluent NHibernate中,您可以使用Table()方法来指定映射的表名。以下是一个示例:

代码语言:csharp
复制
public class MyClassMap : ClassMap<MyClass>
{
    public MyClassMap()
    {
        Table("MyTableName");
        Id(x => x.Id);
        Map(x => x.Property1);
        Map(x => x.Property2);
    }
}

在这个示例中,我们将MyClass类映射到名为MyTableName的表中。Id()方法用于定义主键,Map()方法用于定义其他属性。

请注意,您还可以使用Table()方法的重载版本来指定架构和目录。例如:

代码语言:csharp
复制
public MyClassMap()
{
    Table("schema.MyTableName");
    Id(x => x.Id);
    Map(x => x.Property1);
    Map(x => x.Property2);
}

在这个示例中,我们将MyClass类映射到名为MyTableName的表中,该表位于名为schema的架构中。

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

相关·内容

Fluent NHibernate之旅二--Entity Mapping

ClassMap,然后在构造方法完成映射方法,就能完成传统方式的映射了。...回答是当然需要,因为我们这里的属性的主键名是相同的,所以没有进行设置,如果你数据库的主键名是ID,这里我们只需要Id(m => m.ProductID).ColumnName(“ID”),你可以看到上述映射中的...对于我这种新手来说,Fluent更适合我,因为我可以用它来进行学习NHibernate。 映射做好了,接下来我们在NHibernate把映射加到配置。...在这里顺带介绍一下,MappingConfiguration.ExportTo(string path) 方法,它能把你的Entity Mapping自动生成hbm.xml文件到你指定的path,我们可以生成好...为了接下来的方便,我把Fluent的Mapping都生成到我传统方式的Mapping目录,加入到项目,设置成嵌入的资源,一切都为了以后的教程,换句话说以后的教程,我一般都会使用Fluent来进行映射

1K90

Fluent NHibernate之旅(三)-- 继承

经过了“开篇”和“简单映射”两篇文章,相信大家对Fluent NHibernate 有了一定的了解了,FluentNHibernate实际就是对 NHibernate 映射的一定扩展,我们能完全利用强类型...从这一篇开始,我们将使用Fluent NHibernate RC 1.0 版来进行演示,先前的代码,我会另外进行说明 继承 在OOP,继承作为OO重要的特性,如果NHibernate没有对它的支持,...Table per class hierarchy(所有子类在一张) Table per subclass(父一张,每个子类一张) Other(其他方式) 准备 我们还是以前两篇的电子商务来说事...,一定看到过了,其实就是把父、子类的所有属性放到一个,这样做的好处就是我们不需要建立其他,一张表格全搞定,但缺点也显而易见,在属性少的情况下或许没有什么,但是多了以后,我们的维护、扩展就变得相对麻烦...Table per subclass 在这种方式,一个父包括了一些共同的属性,子类除了主键外,就只有属于自己的属性。

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

    使用Fluent NHibernate的最大好处是降低了出错的机会,因为Fluent Nhibernate的配置是使用C#来编写,可以智能感知,而且还能编译,不像原始的XML配置,写错了都不知道。...更多的修改意味着更多的风险,为了减少这方面的风险,同时为了减少配置的工作量,所以在最新的项目中采用了Fluent NHibernate的Automapping。...(比如CostCenter对应COST_CENTER) 的主键使用Id命名,的主键使用+“_ID”的命名方式。...(比如CostCenter中有public virtual long Id{get;set;},对应的列COST_CENTER_ID) 对于一对多的关系,使用父方的名作为属性中使用父的主键列名作为对应的外键列的列名...对于多对多的关系,把两个对应的进行排序,将小的排前面,然后将两个连接起来,中间使用“_”分割。

    1.1K10

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

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

    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版已经不再提倡,我们要分开映射,我相信这个做法是好的,...RC版,SubClass和JoinSubClass的映射,都要继承SubclassMap,很多属性和方法都跟ClassMap一样,它有自己的一些属性和方法,比如DiscriminatorValue

    64250

    使用VS2015和Nhibernate实现与MySql数据库连接,实现增删改查操作

    ,MySQL-FRONT ,Connector/Net(选择.Net&Mono) Nhibernate包可以在VS2015下载 ,对MySql操作,我用的是MySQL-FRONT,注意要想实现和数据库的链接...先写一个简单的给你定义的数据库添加一条元素的代码:(不使用Nhibernate的) 前提:先把该用的dll文件,添加到引用里面去不然,会连接不成功,之前下载的Connector/Net(选择.Net&...然后我们在工程下面新建两个文件夹:Model文件夹用来存放数据库和映射,还有一个Manger用来存放对数据库执行增删改查操作的。...; }//的年龄 } } 2.再在Modle文件下建立一个映射,名字为MapAPengChao,这个的代码如下: using FluentNHibernate.Mapping.../// class MapAPengChao:ClassMap//继承ClassMap 为APengChao做映射 {

    1.4K30

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

    不过,有社区爱好者开发了一个名为《Fluent NHibernate》的项目,用来支持NHibernate的流式配置。...NHibernate映射文件 对于NHibernate的映射文件有个约定的名字: .hbm.xml 这里先为大家介绍一下映射文件的格式: 1.1 hibernate-mapping 的说明 <hibernate-mapping...,默认情况从Property 读取 default-lazy:可选的,默认是true,是否启动延迟加载 1.2 class的配置 一般情况下,class节点只需要指定name和table就可以了。...1.2.1 id 任何一个映射都必须声明一个数据的主键,大多数也必须有一个唯一标示字段用来区分不同的实例。...column:对应数据的列名 type:数据库的类型 1.2.3 many-to-one 在Nhibernate,多对一的配置是在一的一端,表示该类有一个外键导航。

    1.1K20

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

    Fluent Nhibernate(以下简称FN)发展到如今,已经相当成熟了,在Nhibernate的书中也相应的推荐了使用FN来进行映射配置,之前写的FN之旅至今还有很多人会来私信我问题,说来惭愧,从...m.FluentMappings.Add()) .BuildSessionFactory(); } 这是我们手动映射,Mapping()中指定了用...刚我们的测试报错,是因为Employee的Name是个UserNameNhibernate的Component,我在FN之旅四(上)中有介绍到,默认情况下映射根据字段映射到数据库的,所以上面的测试会报错...Fluent Nhibernate确实是个好东西,让我在开发上省去了很多时间,今天虽然介绍了AutoMapping,但我不推荐您在您的项目中使用,用起来没手感(个人感觉),需要约定的东西太多了,对于数据库结构也得按照他的契约来...,否则就得自己重写一些方法,实现一些,有点累人。

    95760

    Nhibernate_nhibernate与ef区别

    开发过程 HNibernate将会有一些工具帮助你,:生成schema,根据映射文件(Mapping file)生成,并更新schema(一个新开发者的建议).然而,在本文档,前提是你已经手动的数据库的创建喝...在数据库创建把.Net持久化的对应. 2. 创建需要被持久化的.Net. 3. 创建映射文件,以告诉NH怎样持久化这些的属性. 4....和Assembly)映射到数据库的user(这里和hibernate有些不同,我们必须告诉NH这个从哪儿来的.这个差异是由.Net和Java Reflect机制的不同引起的-zyyang)....这种情况下,我们是从Assembly NHibernate.Demo.QuickStart载入NHibernate.Demo.QuickStart.User..NH遵守.Net Framework使用...- 映射文件 æ app.config - 带有Ado.net连接信息的配置文件(你也可以在代码中指定的) æ 一个叫做user的数据库.

    58330

    Nhibernate_juan benet

    开发过程 HNibernate将会有一些工具帮助你,:生成schema,根据映射文件(Mapping file)生成,并更新schema(一个新开发者的建议).然而,在本文档,前提是你已经手动的数据库的创建喝...在数据库创建把.Net持久化的对应. 2. 创建需要被持久化的.Net. 3. 创建映射文件,以告诉NH怎样持久化这些的属性. 4....和Assembly)映射到数据库的user(这里和hibernate有些不同,我们必须告诉NH这个从哪儿来的.这个差异是由.Net和Java Reflect机制的不同引起的-zyyang)....这种情况下,我们是从Assembly NHibernate.Demo.QuickStart载入NHibernate.Demo.QuickStart.User..NH遵守.Net Framework使用...– 映射文件 æ app.config – 带有Ado.net连接信息的配置文件(你也可以在代码中指定的) æ 一个叫做user的数据库.

    37250

    NHibernate详解

    开发的过程: 1.新建一个将要持久化.Net对象的 2.构建一个需要被持久化的.Net 3.构建一个可以让NHibernate知道如何持久化对象属性的映射文件...第三步:写映射文件 现在我们有数据和需要去映射它的.Net。我们需要一种方式去让NHibernate知道如何从一个映射到另一个。这个任务依赖于映射文件来完成。...这里我们将映射类型名称(,装配件)到我们数据库的User,这里和Hibernate有一点点的不同。你将不得不告诉NHibernate从何处提取对象。...内嵌的generator 标签告诉NHibernate 如何生成主键(它将恰当的为你生成主键,不管你指定何种类型,但你必须告诉它)。...你的数据库里有一张User。 现在可以在你的代码恰当简洁的使用NHibernate。简化的版本如下 1. 创建一个Configuration对象 2.

    66830

    php之laravel项目中使用腾讯云短信

    模板创建成果后,会有模板信息列表:模板ID、类型、申请时间、模板名称、内容 如何在laravel配置sdk ①腾讯云短信包在Github的下载地址:https://github.com/qcloudsms...③在laravel的composer,json 文件里找到 “autoload”,写下sdk包路径,如下:  ”autoload”:{“classmap”:[ "app/Libs/qcloudsms_php-master..."]} ④在终端Terminal运行  composer dump-autoload ⑤在laravel下的vendor/composer/autoload_classmap.php查看自动加载的key...应用 sms_send信息发送详情 sms_sign签名表 sms_template模板 sms_verify验证码表 : sms_app 应用表字段类型默认值说明idint(11) merch_idint...:1表示当前正在应用的 : sms_send 应用表字段类型默认值说明idint(11) merch_idint(11) 商户ID :0代平台sms_typeInt(11) 短信类型user_idInt

    3.6K00

    我所理解的C++反射机制

    如果,我们不知道反射能解决什么问题,或者说我们在工作实践遇到的问题无需反射来解决,那么我们千辛万苦,煞费苦心去学习这个不常用的东西,意义何在呢?...(1)为需要反射的定义一个创建该类对象的一个回调函数; (2)设计一个工厂中有一个std::map,用于保存和创建实例的回调函数。...通过工厂来动态创建对象; (3)程序开始运行时,将回调函数存入std::map(哈希)里面,名字做为map的key值; 实现流程如下图所示: image.png 2.2具体实现 下面我来一步一步的讲解具体的实现方法...,我们还是需要用到进行强制类型转换,有了名称,我们何必还要处心积虑实现反射的功能呢,直接用创建实例不就行了么?...仔细一想,我们通过全局对象的构造函数将的创建实例的函数注册到工厂,其实我们是利用了全局对象的初始化执行的构造函数是在程序进入main函数之前执行的,这个问题就可以抽象为C/C++何在main(

    5.1K41

    PHP Composer 的自动加载

    PSR-4 其中规定:一个的完整应该遵循一下规范: \(\)*\,即: 完整的必须要有一个顶级命名空间,被称为 “vendor namespace”; 完整的可以有一个或多个子命名空间...; 完整的必须有一个最终的; 完整的任意一部分的下滑线都是没有特殊含义的; 完整的可以由任意大小写字母组成; 所有都必须是大小写敏感的。...$this->missingClasses[$class] = true; } return $file; } 对于的加载十分简单,直接去 classmap 取。...如果取不到,则将目标追加 .php 后缀,去$prefixLengthsPsr4 和 $prefixDirsPsr4 查找。...四、composer 的 ClassLoader classMap 是怎么生成出来的?

    25310

    PHP如何使用Composer来自动加载项目文件?

    它以每个项目为基础管理它们, 并将它们安装在项目内的目录 ( vendor) . 默认情况下, 它不会在全局范围内安装任何内容。因此, 它是一个依赖关系管理器。...包含了所有文件路径的对应关系,所以加载器不再需要到文件系统查找文件了。...,不会再去文件系统查找(即隐含的认为 classmap 中就是所有合法的,不会有其他的了,除非法调用);如果项目在运行时会生成,使用这个优化策略会找不到这些新生成的。...这种策略是为了在 Level-1 classmap 找不到目标时,将在文件系统中找到的结果存储到共享内存, 当下次再查找时就可以从内存中直接返回,不用再去文件系统再次查找。...在 PSR-0 标准,您必须使用命名空间来定义您的库。完全限定的必须反映\\(\)*结构。此外,您的必须保存在遵循与命名空间相同的目录结构的文件

    3.2K40

    PHP自动加载与composer自动加载

    但这样一来,当我们调用其他的时候,则需要先手动引入该文件(否则会因为当前程序没有该类而报错) 久而久之加载的列表就会很混乱复杂,不方便管理。 文件A.php <?...,将代码放到不同空间内,可以定义相同类 那是因为,虽然我们已经引入了Siam\A 但是在使用的时候没有说明我们使用的是Siam空间下的A 当我们在某个命名空间下(Siam)声明的时候,该类的完整名将是命名空间...+(Siam\A) 所以默认调用根的A,我们将代码改成 require "A1.php"; $A1 = new Siam\A(); 得到结果:这是在Siam空间下的A 除了这种在调用的时候写完整的方式...这个时候我们将这类型的文件放在一个目录,并使用classmap方法设置在加载文件的时候搜索这些目录。...PSR-4,在中使用下划线没有任何特殊含义。而PSR-0则规定的下划线会被转化成目录分隔符。 现在一般都是使用PSR-4规范。

    2K10
    领券