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的功能,感覺不錯,可是我不太喜歡它的編輯器,不知道有沒有人真正用它?
總結
以上是生活随笔為你收集整理的NHibernate中的SchemaExport的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#语法糖 Null 条件运算符 【?.
- 下一篇: Hey, everybody!