NHibernate中的SchemaExport

昨天,在看hibernate文档的时候,看到了这样一段:
   You should now create this table in your database manually, and later read Chapter 15, Toolset Guide if you
want to automate this step with the SchemaExport tool. This tool can create a full SQL DDL, including table
definition, custom column type constraints, unique constraints and indexes.
  
  这个时候才发觉自己以前有些地方想偏了。

   之前,在使用NHibernate的时候,一般是在powerdesigner中建立逻辑模型,然后根据这个逻辑模型生成OO模型和数据库物理模型,在OO模型上生成C#代码和map文件,数据库物理模型上生成SQL脚本。这样做的一个很大的问题就是在修改模型的时候,只能修改逻辑模型,然后再重新生成OO模型和数据库模型,这样非常麻烦,可能最后的结果将导致 :不再维护模型,而直接修改代码和数据库。这样,完全违背了MDA的原则。

   SchemaExport其实是MDA思想的部分体现,我们在实现业务逻辑的时候,只需要处理业务对象,至于其如何存储则不用关心,这样,做到了真正的与数据库无关。

  但是 ,在NHibernate中SchemaExport的功能还不是很强,它的功能仅仅局限于 根据map文件,自动生成Creat表的SQL脚本,如果修改了map文件,那么对应SQL要重新生成,也就是说没有alter table,只有 create table,很多的数据都将丢失。

  目前,感觉将SchemaExport放在unit test中更加可行一些,实际的项目中可能不会用到。

  去年看过C#Builder里面有MDA的功能,感觉不错,可是我不太喜欢它的编辑器,不知道有没有人真正用它?


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/305907.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Asp.Net Core使用Skywalking实现分布式链路追踪

介绍Skywalking 是 Apache 基金会下面的一个开源 APM 项目,是一套(APM)分布式追踪系统,提供了很多数据存储列如:Mysql,H2,Elasticsearch7 等。其中APM 全称是应用性能监测软件,主要是用来处理以及追踪分布式…

python 里什么时候缩进_python什么时候缩进

Python中的缩进(Indentation)决定了代码的作用域范围。这一点和传统的c/c有很大的不同(传统的c/c使用花括号花括号{}符决定作用域的范围;python使用缩进空格来表示作用域的范围,相同缩进行的代码是处于同一范围)。每行代码中开头的空格数(whitespace)用于…

Hey, everybody!

今天有一位MVP朋友问我是否想做MVP,我想了半天,还是觉得有机会就要尝试,失败了也没什么大不了的。所以最后决定要参加这么一次活动,虽然是自不量力,也要搏一搏啦!如果说大家都能够来推荐我一下多好啊&#…

C# 9 新特性 —— 补充篇

C# 9 新特性 —— 补充篇Intro前面我们分别介绍了一些 C# 9 中的新特性,还有一些我觉得需要了解一下的新特性,写一篇作为补充。Top-Level Statements在以往的代码里,一个应用程序必须要有 Main 方法才能运行,从 C# 9 开始&#xf…

使用Popup窗口创建无限级Web页菜单(5)

代码框架在(4)里面已经全部列出来了,现在工作就是按流程把他们完成。本来实现一个prototype的Menu菜单类只需要最多300行代码,可是后来做了一些操作习惯支持和UI显示上的优化后,代码猛增到了1000多行。不过final版本看起来确实比土不拉叽的pr…

【gRPC】ProtoBuf 语言快速学习指南

继上篇【gRPC】 在.Net core中使用gRPC了解了gRPC的使用,gRPC基于HTTP/2和ProtoBuf,ProtoBuf就非常有必要好好了解一下了,那么ProtoBuf究竟是什么?ProtoBuf Google Protocol Buffer是一种语言无关、平台无关、可扩展的序列化结构数…

vspythonqt混合_PYQT5 vscode联合操作qtdesigner的方法

除了使用pycharm外,还可使用vscode来操作pyqt,方法如下:1. 在vscode中配置相关的pyqt的相关根据自己实际情况修改第一项pyqt的路径2. 创建一个文件夹,右键,最后一项可以创建一个新窗口创建的新窗口后缀为 .ui右键中有以…

发现 ASP.Net 的一个关于回车提交的 Bug ? 必须多于一个 Text 域回车提交,Server: ButtonX_Click 才能截获!...

ASP.Net 中: 如果 Text 类型的域只有一个,此时按下回车提交,WebServer 端 ButtonX_Click 竟然截获不到,只能在 WebServer 端 Page_Load 里截获,与传统的 Web Form 提交到 Action CGI 没区别了!假如 Text 类型的域多于一个,此时按下回车提交,在 WebServer 端 ButtonX_Click 可以…

TIOBE 1 月榜单:Python年度语言四连冠,C 语言再次第一

喜欢就关注我们吧!TIOBE 公布了 2021 年 1 月的编程语言排行榜。TIOBE 本月公布了 2020 年度编程语言,Python 获得四连冠,是过去一年中最受欢迎的编程语言。Python 在 2020 年实现了 2.01% 的正增长;C 紧随其后&#x…

java 验证登陆_java登陆界面验证

展开全部以下代码就是了。详细参照附件import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swin…

A piecture of J2EE Core Patterns

这张图是J2EE Core Patterns里面的一幅图片,在Enterprise Solution Patterns Using Microsoft.Net里面虽然模式的概念与应用大同小异,但是那张表现架构模式整体的图感觉有点不直观,相比之下这幅图显得更清晰一点。 发到这里供大家参考学习:&#xff09…

孙丕恕离开浪潮 仪器厂历时60年成为服务器龙头企业

2020年12月31日浪潮集团有限公司董事会选举邹庆忠为公司董事长(法定代表人);孙丕恕不再担任公司董事长;公司不再聘任孙丕恕为首席执行官。另外,经省委研究决定,拟任省直部门(单位)副…

java 数组 树_java使用顺序数组实现二叉树

顺序数组实现二叉树实现原理对于下标为index的节点其满足1.左孩子节点的下标为2index12.右孩子节点的下标为2index2代码实现package tree;public class ArrayBinaryTree {private int[] arr;public ArrayBinaryTree(int[] arr){this.arrarr;}public void preOrder(int index){i…

hack 入侵 142 主机的过程

时间 2005 3 29 iis 日志文件显示有黑客痕迹 常用的iis 分析软件的介绍 使用 find 命令 入侵检测的常用方法参考 http://www.xfocus.net/articles/200208/440.html 编写日志脚本参考 http://www.blueidea.com/bbs/archivecontent.asp?id1304500 sql 注入方法介绍和预防 http:/…

【Docker】Asp.net core在docker容器中的端口问题

还记得【One by one系列】一步步学习docker(三)——实战部署dotnetcore中遇到的问题么?容器内部启动始终是80端口,并不由命令左右。docker run --name container-name -p 81:5000 mywebapi所谓知其然就要知其所以然,浅…

新华字典java_新华字典查询示例代码

package api.binstd.zidian;import java.net.URLEncoder;import api.util.HttpUtil;import net.sf.json.JSONArray;import net.sf.json.JSONObject;public class Word {public static final String APPKEY "your_appkey_here";// 你的appkeypublic static final Str…

.net 5.0 中的 JsonConsole

asp.net core 5.0 中的 JsonConsoleIntroasp.net core 5.0 中日志新增了 JsonConsole,还是输出日志到 Console,但是会应用 Json 格式的一个 Formatter 把日志格式化成 json 再输出到控制台Sample一起来看一个示例,以我的一个小项目为例子来演…

采用开源软件搭建WebGIS系统(6)数据格式

[本文版权由xiaotievip.sina.com所有,转载需得到作者同意。] 在国家基础地理信息中心下载到的数据格式是Shape file数据。Shape file数据由3个文件构成,*.shp,*.dbf和*.shx,分别存储空间数据、属性数据和两者间的关系。*.shp得专门…

java 按符号分割字符串_JAVA字符串按分隔符号字符串分割

在处理有规律的字符串的时候.有些字符串分割需要注意了..如下例子:public class Split {public static void main(String[] args) {String str1 "1,2,3,4,5";String str2 "1,2,3,4,";String str3 "1,,2,3,";String str4",,,,";System.…

.NET Core 使用Topshelf方式创建Windows服务

Topshelf是一个.NET Standard库,它消除了在.NET Framework和.NET Core中创建Windows服务的那些麻烦。安装Install-Package Topshelf代码using System; using System.Collections.Generic; using System.Text; using Topshelf;namespace ConsoleApp2222 {public clas…