使用nHibernate时,谁创建了类文件?

时间:2009-05-26 12:16:50

标签: nhibernate

我的印象是,在使用nHibernate时,在创建映射xml文件等之后,所有用于基本CRUD操作的管道都会与类文件一起完成,即

public class Employee
{
       public virtual string Name {get; set; }

}

但我在这里肯定是错的,因为似乎没有生成任何内容,或者在第一页加载时构建会话/配置时是否在内部生成?

4 个答案:

答案 0 :(得分:1)

我们首先创建类文件,然后创建映射,然后生成db。

直接使用映射属性使这种风格(IMO更容易) 代码看起来非常像这样:

public class Base {
    [Id(..., Column="{{Id.Column}}")]
    [AttributeIdentifier(Name="Id.Column", Value="ID")] // Default value
    public int Id { ... }
}
[AttributeIdentifier(Name="Id.Column", Value="SUB_ID")]
[Class] public class MappedSubClass : Base { }

我认为生成的db模型与我从db设计开始时有点不同 - 但我对结果感到满意。

如果要将很多类相互嵌套,请确保延迟加载。

答案 1 :(得分:1)

我不相信nHibernate会为你生成类,但你可以使用CodeSmith或LLBLGen的下一个版本为你生成它们。

查看hibernates网站的“有用工具”部分,了解一些可能有用的工具。其中一些将生成映射和类文件。您可以尝试其中一个,只将类文件作为您的类的基础。

https://www.hibernate.org/365.html

答案 2 :(得分:1)

There is a tool to generate classes(我认为只有java),但我建议你自己编写这些类。这是您的域类,您应该特别注意它们。它不像类型化的记录集或只用于数据库交互的东西。

另一方面,the tool that creates the db schema是值得推荐的。

答案 3 :(得分:0)

据我所知,NHibernate不会为你创建类。我在这方面遇到的两个非常好的工具是

  1. MyGeneration - 免费

  2. CodeSmith - 许可。

  3. 抱歉,由于stackoverflow中的一些限制,无法添加超链接。