ORM 映射的代碼生成工具 (code generation tool for ORM mapping)


問題描述

ORM 映射的代碼生成工具 (code generation tool for ORM mapping)

There seems to be no end of code generation tools out there and would rather not have to go through each to see what is still maintained, easy to use, and provides customization.  The code generation is for NHibernate mapping and subsequent creation of value objects or Data Transfer objects (DTO). It would be great if it could also generate in other languages such as action script. 

As this app being developed is using the database the ORM is generally a 1:1 mapping. I know that this defeats most of reasons of using NHibernate but that is what it is. 

‑‑‑‑‑

參考解法

方法 1:

T4 ‑‑ built into Visual Studio 2008.  You've already got it for free.  Works well, fully supported.  If you do some searching you can find T4 scripts for Linq To Sql, and Entity Framework.  I'm sure an NHibernate script exists as well.

MyGeneration:  Open Source, also very good.  No Visual Studio integration.

Code Smith: Commercial, does the job very well.  Also integrates into Visual Studio.

All of them are customizable.  Code Smith and T4 are both very similar to me as far as the script goes.  

方法 2:

I generally create an XSLT which queries sysobjects joined to syscolumns (assumes one is using SQL Server) and transform the output to build the necessary structures.  This has the downside that you have to code and debug it yourself.  However, once you've got it working, you have 100% flexibility to extend and customize it and the only cost is for time and effort upfront (usually about 2‑3 days to get an initial working copy).

Hope this helps,

Bill

方法 3:

I haven't had time to look at it yet, but Entity Framework in 4.0 (VS2010, now available in public beta) supports T4 templates for code generation from edmx... so you can customize it pretty much as you like. Search for "Entity Framework T4 Template" and you'll find a lot, especially from the last few days.

方法 4:

We've used open source NVelocity

(by AndrewBChris BrandsmaV'rasana OannesMarc Gravelltreehouse)

參考文件

  1. code generation tool for ORM mapping (CC BY‑SA 3.0/4.0)

#Code-Generation #nhibernate #C#






相關問題

關於編譯器中代碼生成的參考(中間表示、SSA、指令選擇、寄存器分配等)? (References on code generation in a compiler (intermediate representations, SSA, instruction selection, register allocation, etc.)?)

如何在每個新模塊中自動注入輔助類? (How to automatically inject helper classes in each new module?)

適用於Visual Studio的Python代碼生成器? (Python code generator for Visual Studio?)

為什么生成執行操作的 Java 代碼比“解釋器循環”運行得更慢? (Why does Java code generated to perform an operation run more slowly than an "interpreter loop"?)

ORM 映射的代碼生成工具 (code generation tool for ORM mapping)

Delphi 的 x86 代碼生成器框架 (x86 code generator framework for Delphi)

適用於 xpand 的 Actionscript 3 代碼美化器(MWE2 工作流程) (Actionscript 3 code beautifier for xpand (MWE2 Workflow))

Maven 中的代碼生成 (Code generation in Maven)

在自定義生成器中生成嵌套路由 (Generating nested routes in a custom generator)

是否有類似 JET(Java Emitter Templates)但沒有 Eclipse 依賴項的東西? (Is there something like JET (Java Emitter Templates) but without Eclipse-dependencies?)

Python函數,它返回自己的帶有參數的簽名 (Python function which returns its own signature with parameters)

為什麼 protobuf 更喜歡代碼生成器而不是運行時動態加載 (why protobuf prefer code-generator other than dynamic loading at runtime)







留言討論