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

如何从NHibernate映射文件生成"迁移"DDL?

NHibernate映射文件(.hbm.xml文件)可以映射实体(Entity)与关系(Relationship)。生成数据库表和列(DDL,Data Definition Language)的步骤包括:

  1. 使用NHibernate的反编译器,可以将映射文件(.hbm.xml文件)反编译成元素对象和关系对象。
  2. 利用元素对象生成关系表(如表名、列名、索引等)。
  3. 利用生成的关系表生成数据库表和列的DDL语句,包括CREATE TABLE、ALTER TABLE、ADD CONSTRAINT等SQL语句。
  4. 使用NHibernate映射工具,可以将生成的DDL语句导入到Visual Studio数据库工程中,完成DDL的生成。

需要注意的是,NHibernate映射文件本身就是一个XML格式的文件,它定义了数据库表的表名、表结构、字段名、外键等元素。因此,NHibernate映射文件可以自动为实体生成数据库表的DDL语句,这也是NHibernate的一个重要特性之一。

当然,如果你需要创建迁移(Migration)文件,也可以通过NHibernate映射文件,并结合第三方迁移工具进行实现。

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

相关·内容

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

ISessionFactory - NHibernate.ISessionFactory: 一个基于单数据库的已编译的映射缓存,它是持久不变的且线程安全(额,这句话是它的文档翻译过来的)。...ISession - NHibernate.ISession: 一个单线程、短生命周期的对象,表示应用程序和数据持久化之间一个连接。...配置项介绍 在上一篇文章中,我们介绍了一下如何设置NHibernate的基本配置项,但是并未对配置项进行深入。...hbm2ddl.auto 该值表示每次ISessionFactory创建的时候,是否自动生成DDL语句并提交数据库执行。默认是空,表示不会强制更新数据库。...总结 这是一篇枯燥乏味的说明文,主要介绍了Nhibernate的基本内容。下一章我们来试试,如何创建Nhibernate映射配置。

1.1K20

NHibernate详解

开发的过程: 1.新建一个将要持久化.Net对象的表 2.构建一个需要被持久化的.Net类 3.构建一个可以让NHibernate知道如何持久化对象属性的映射文件...第三步:写映射文件 现在我们有数据表和需要去映射它的.Net类。我们需要一种方式去让NHibernate知道如何从一个映射到另一个。这个任务依赖于映射文件来完成。...在这个例子里我们装配件(最后编译的DLL文件名称)NHibernate.Examples 装载类NHibernate.Examples.QuickStart.User 。...内嵌的generator 标签告诉NHibernate 如何生成主键(它将恰当的为你生成主键,不管你指定何种类型,但你必须告诉它)。...如果你执意要NHiberante为你生成主键,你感兴趣于设定uuid.hex和uuid.string(文档中获取更多信息) 提示:如果你使用Visual Studio.Net 去编译的话,请将user.hbm.xml

53330

JavaScript迁移到TypeScript,类型声明文件自动生成与中心化管理的实践

作者 | 许京爽、许侃 编辑 | 蔡芳芳 为了解决 JavaScript 逐步迁移到 TypeScript 过程中遇到的痛点,FreeWheel 核心业务团队评估并提出了一套由 Protobuf...架构设计 整体解决方案的架构图如下图, @fw-types 代码仓库的入口来看可以划分为两个部分,一个是由于Protobuf文件的变化引发的自动由Protobuf文件生成TypeScript文件并上传到...因此Protobuf 文件生成开始,就需要持续集成流水线的介入。 捕获接口定义文件改动是整个流水线的第一阶段,如下图所示。...平均每个 protobuf 改动合并之后能够在 30 分钟内 Artifactory 下载到对应的包文件。...最后,@fw-types 仓库的推广使用还需要提供更加精简的接入步骤,继续增加对更多微服务和前端库的支持,使 JavaScript 往 TypeScript 的迁移更为简单和顺利。

1.3K40

Fluent NHibernate之旅二--Entity Mapping

传统方式:传统方式使用xml文件进行映射,配置文件如下: <hibernate-mapping xmlns="urn:<em>nhibernate</em>-mapping-2.2" namespace="EntityModel...<em>映射</em>的方式很简单吧,相信大家都能看懂吧,为什么会如此方便呢?这其实就是完全靠了Lambda表达式,大家可以看看老赵的“<em>从</em>.NET框架中委托写法的演变谈开去”,就非常清楚了。...在这里顺带介绍一下,MappingConfiguration.ExportTo(string path) 方法,它能把你的Entity Mapping自动<em>生成</em>hbm.xml<em>文件</em>到你指定的path中,我们可以<em>生成</em>好...hbm.xml<em>文件</em>,自己再看一篇,看看<em>NHibernate</em>的<em>映射</em>方式,所以是非常好的一个方法,我有时候做<em>映射</em>的时候,遇到问题都会<em>生成</em>出来,随时查看问题所在,所以说是非常有用的一个方法,而且你可以把你的<em>映射</em><em>文件</em>直接用到...传统方式的<em>映射</em>,我是看了<em>生成</em><em>文件</em>,也不是很复杂,而且我觉得<em>生成</em>的<em>文件</em>比我自己写的还要标准,呵呵。顺便贴一下吧。

98590

Nhibernate_nhibernate与ef区别

开发过程 HNibernate将会有一些工具帮助你,如:生成schema,根据映射文件(Mapping file)生成类,并更新schema(一个新开发者的建议).然而,在本文档中,前提是你已经手动的数据库的创建喝...创建映射文件,以告诉NH怎样持久化这些类的属性. 4. 创建NH的配置文件,以告诉NH怎样连接数据库. 5. 使用NH提供的API....步骤3:编写映射文件(Mapping File) 现在我们有了数据库表和.Net类,我们还需要告诉NH怎样在数据库和类之间映射.这就需要映射文件了.最简捷(也是可维护性最好的)方法就是为每一个类编写一个映射文件...机制的不同引起的-zyyang).这种情况下,我们是Assembly NHibernate.Demo.QuickStart中载入NHibernate.Demo.QuickStart.User类..NH...让我们返回到"id" tag,你可能会猜想这个tag和映射到表的Primary Key有关.正确.ID tag的格式和Property tag的相似.我们Property(name)映射到目标数据库的字段

55030

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 任何一个映射都必须声明一个数据表的主键,大多数类也必须有一个唯一标示字段用来区分不同的实例。...类型 column:列名 generator:主键生成器,如果不需要参数可以直接在 id节点处添加,最常用的是native。

1.1K20

2022年了有哪些值得推荐的.NET ORM框架?

如何选择合适自己的ORM框架? 对于我们而言选择ORM框架的目的其实都是为了让我们的程序更好的操作数据库,提高开发编程效率和程序的维护拓展性。...它支持 LINQ 查询、更改跟踪、更新和架构迁移。...主要特点: 支持 CodeFirst 模式,即便使用 Access 数据库也支持数据迁移; 支持 DbFirst 模式,支持数据库导入实体类,或使用实体类生成工具生成实体类; 支持 深入的类型映射,比如...  NHibernate 是一个成熟的开源对象关系映射器,适用于 .NET 框架。...与SubSonic一样,它支持使用 T4 模板生成 poco 类(仅限 V5)。 与Massive一样,它以单个文件的形式提供,您可以轻松地将其添加到任何项目或编译(仅限 V5)。

5.7K11

NHibernate介绍「建议收藏」

C#可用以解决对象/关系数据库映射的工具有多种,常见的有EF (Entity Framework)、NHibernate、iBATIS等,各自的优缺点及适用场景在此不做讨论,本文只对如何使用NHibernate...NHibernate是一个面向.NET环境的对象/关系数据库映射工具。 1. 创建项目文件 在Visual Studio开发工具里创建需要的项目结构。 2....可以借助MyGeneration自动代码工具数据表生成数据模型和对应的映射文件。...创建NHibernate映射文件 Nhibernate使用XML映射文件映射POCO到数据库对象。虽然在很多案例中这可能是一对一关系,但这并不是必定的。...一旦XML文件创建好了,需要更改XML的生成方式确保它被设置为嵌入式资源,否则NHibernate不会读取这个XML文件,那么映射就不会生效了。

61420

NHibernate学习笔记之一,Hello world!

;mapping表示映射NHibernateDemo.WebUI命名空间下的所有类型,包含持久化类以及对应映射文件所在的应用程序集名称。...3、编写实体类(POCO,Plain Old CLR Objects),映射文件包含POCO类映射到一个或者多个数据库表的元数据信息。User.cs文件如下所示。...4、为POCO类编写写一个数据库映射文件,其实User.hbm.xml映射文件包含了对象/关系映射(ORM)所需的元数据。元数据包含持久化类的声明和属性到数据库的映射。...Bin目录中,否则会报错“xxx is not mapped”,如图3所示具体方法是:选择User.hbm.xml文件->属性->生成操作,设置这个属性的值为“嵌入的资源” 图3 5、定义NHibernateHelper...的帮助类,Isession是NHibernate的工作单元,它是一个持久化管理器,我们通过ISession来数据库中存取数据。

57420

2022年了有哪些值得推荐的.NET ORM框架?

如何选择合适自己的ORM框架? 对于我们而言选择ORM框架的目的其实都是为了让我们的程序更好的操作数据库,提高开发编程效率和程序的维护拓展性。...它支持 LINQ 查询、更改跟踪、更新和架构迁移。...主要特点: 支持 CodeFirst 模式,即便使用 Access 数据库也支持数据迁移; 支持 DbFirst 模式,支持数据库导入实体类,或使用实体类生成工具生成实体类; 支持 深入的类型映射...  NHibernate 是一个成熟的开源对象关系映射器,适用于 .NET 框架。...与SubSonic一样,它支持使用 T4 模板生成 poco 类(仅限 V5)。 与Massive一样,它以单个文件的形式提供,您可以轻松地将其添加到任何项目或编译(仅限 V5)。

3.8K20

NHibernate总结

封装Nhibernate底层操作,People.cs为实体类,People.hbm.xml为映射文件(把数据库表People映射到实体类People)。...这正是NHibernate映射文件发挥作用的地方。映射文件包含了对象/关系映射所需的元数据。元数据包含持久化类的声明和属性到数据库的映射。...映射文件告诉NHibernate它应该访问数据库里面的哪个表及使用表里面的哪些字段。 <?xml version="1.0" encoding="utf-8" ?...“内容”,这里需要修改为“嵌入的资源”生成,因为NHibernate是通过查找程序集中的资源文件映射实体。...我们可以在People.hbm.xml点击右键选择属性修改该文件生成操作 (5)     NHData.cs对库表People进行增删改查 现在完事具备只欠东风了,开始我们的数据库CRUD操作,在看该文件的代码时

89140

Nhibernate_juan benet

开发过程 HNibernate将会有一些工具帮助你,如:生成schema,根据映射文件(Mapping file)生成类,并更新schema(一个新开发者的建议).然而,在本文档中,前提是你已经手动的数据库的创建喝...创建映射文件,以告诉NH怎样持久化这些类的属性. 4. 创建NH的配置文件,以告诉NH怎样连接数据库. 5. 使用NH提供的API....步骤3:编写映射文件(Mapping File) 现在我们有了数据库表和.Net类,我们还需要告诉NH怎样在数据库和类之间映射.这就需要映射文件了.最简捷(也是可维护性最好的)方法就是为每一个类编写一个映射文件...机制的不同引起的-zyyang).这种情况下,我们是Assembly NHibernate.Demo.QuickStart中载入NHibernate.Demo.QuickStart.User类..NH...让我们返回到”id” tag,你可能会猜想这个tag和映射到表的Primary Key有关.正确.ID tag的格式和Property tag的相似.我们Property(name)映射到目标数据库的字段

35450

盘点 .NET 比较流行的开源的ORM框架

支持 Join 查询、Union all 、Subquery 支持配置查询 支持 DbFirst 数据库导入实体类,或使用生成工具。...EF有三种使用场景: 1、数据库生成Class。 2、由实体类生成数据库表结构。 3、通过数据库可视化设计器设计数据库,同时生成实体类。...开源地址:https://github.com/dotnet/ef6 六、NHibernate(国外) NHibernate 是一个成熟的开源对象关系映射器,适用于 .NET 框架。...更好的参数替换支持,包括对象属性中获取命名参数。 通过使用 DynamicMethod 生成消除 Linq 和快速属性分配来获得出色的性能。 查询语言是好的 ole SQL。...包括 T4 模板以自动为您生成 POCO 类。(V5) 用于记录异常、安装值转换器和将列映射到没有属性的属性的挂钩。

3.9K41

NHibernate教程

一、NHibernate简介 在今日的企业环境中,把面向对象的软件和关系数据库一起使用可能是相当麻烦、浪费时间的。NHibernate是一个面向.Net环境的对象/关系数据库映射工具。...由此可见,NHibernate不仅仅管理.Net类到数据库表的映射,还提供数据查询和获取数据的方法。因此采用NHibernate,可以大幅度减少开发时人工使用SQL处理数据的时间。...NHibernate知道如何完成ORM映射的XML文件; 5.使用NHibernate的API来编程 三、NHibernate的使用 1....在这里,仍然采用手写的方式来生成这两个文件。...使用NHibernate的API进行编程 数据库编程不外乎“添加”、“删除”、“更新”,看看NHibernate如何实现这三种操作吧。

33010

C#——Nhibernate探索

https://sourceforge.net/projects/nhibernate/ 分析文件内容 下载完成后,解压缩,我们看到文件夹内容如下图所示。 ?...nhibernate-configuration.xsd和nhibernate-mapping.xsd两个文件暂时不知道要干什么用的。...但看到.xsd文件,第一时间反应,他们应该是用来帮助开发者,快速生成配置文件用的。为了保险起见,我们上网查询一下。 查询结果: 查询结果是,他们俩是【文件智能提示功能】用的。...调查结果: 对象与数据库的映射是保存在XML文件中的,于是我配置XML映射文件如下。 该XML文件的属性,要求设置其生成操作为【嵌入的资源】。 但我怕它丢失,还给他设置了始终复制的属性。...这句话的意思是,映射我创建的那个类库。 我推断,Nherbinate是读这个配置文件,然后到这个程序集里,反射查询那些poco对象。

47230

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

先写一个简单的给你定义的数据库中添加一条元素的代码:(不使用Nhibernate的) 前提:先把该用的dll文件,添加到引用里面去不然,会连接不成功,之前下载的Connector/Net(选择.Net&...包来实现一个很简单的对数据增删改查的操作,这一次需要用到我们之前下载的Nhibernate包里面的文件,全部dll文件引入之后,“引用”下面应该是这样的: ?...然后我们在工程下面新建两个文件夹:Model文件夹用来存放数据库表类和映射类,还有一个Manger类用来存放对数据库执行增删改查操作的类。...NHibernateHelper的dll文件里面进行自动映射 (x => x.FluentMappings.AddFromAssemblyOf()) //生成工厂 .BuildSessionFactory();//最后生成工厂赋值给_sessionFactory

1.4K30
领券