带有自动生成类的.NET ORM解决方案:Subsonic,Castle AR,……?

我曾经使用自定义数据映射库,并且我正在尝试切换到更广泛的ORM解决方案.

经过一些实验,我将我的要求提炼到以下几点:

>能够从数据库模式生成可用的类(sql Server支持就足够了),
>支持ActiveRecord模式,
> programmaticaly可配置(通过代码属性,没有HBM文件),
>免费.

你能推荐一个吗?

到目前为止,我尝试过:

亚音速3.0

我最喜欢的那个,因为它感觉就像功能和简单之间的良好平衡.

我不喜欢的:

>使用IQueryable<>和一对多关系两端的复数名称 – 这对我来说似乎是违反直觉的;
>为所有类生成一个文件 – 比如每个类一千行,我对代码文件那么大感觉不好;
>自动调用T4处理,因此必须始终提供具有最新模式的数据库.

Castle ActiveRecord

带有ActiveWriter加载项的CastleAR几乎就是我所需要的,但是ActiveWriter的代码并不完美(看来,Nullable<>属性不受支持,认的一对多实现不起作用)而且我不能找到如何手动修复此代码.

Darkside GeneratorStudio产生更好的代码 – 正确的定义,每个实体一个文件 – 尽管它使用神秘的名称,如RefclassIdRefclass.我个人喜欢Studio addin而不是独立的应用程序,但这肯定是一个小问题.

CastleAR发行版中捆绑了大约20个文件;虽然本身不​​是问题,但感觉就像超重.我不需要太多关于NHibernate和其他东西的深奥知识吗?

流利的NHibernate

广泛推荐,但我无法找到它的代码生成器.

我错过了重要的事吗?

解决方法

关于你不喜欢SubSonic的一些想法:

>使用IQueryable<>和一对多关系两端的复数名称 – 似乎
对我来说反直觉;

是的,我同意这是非常直观的,我从来没有深究为什么会这样,但你可以很容易地修改模板来解决这个问题.

>为所有类生成一个文件 – 比如每个类一千行,我对代码文件那么大感觉不好;

您认为这可能会导致问题,但我还没有遇到任何问题,而且我还没有看到有关stackoverflow的报告.

>自动调用T4处理,因此必须始终提供具有最新模式的数据库.

只有在编辑t4文件时才会自动调用它,所以当您对模板进行更改时,实际上只需要一个最新的模式.

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...