如何将NHibernate域类映射到现有表
我目前正试图在一个项目上使用NHibernate,在这个项目中,我没有在SQL2005中创建表的权限 我不断得到一个映射错误,我的假设是我没有通过生成它来设置表。假设NHibernate只能成功映射由其工具生成的表,这公平吗 如果没有,如何确保它适用于现有表如何将NHibernate域类映射到现有表,nhibernate,nhibernate-mapping,Nhibernate,Nhibernate Mapping,我目前正试图在一个项目上使用NHibernate,在这个项目中,我没有在SQL2005中创建表的权限 我不断得到一个映射错误,我的假设是我没有通过生成它来设置表。假设NHibernate只能成功映射由其工具生成的表,这公平吗 如果没有,如何确保它适用于现有表 9月14日 响应提供更多详细信息的请求: 结束命名空间我已找到问题的根源 该错误是由我在调用AddAssembly(typeof(Type))之前没有调用Configure()方法引起的。当我创建SessionFactory对象时
9月14日 响应提供更多详细信息的请求:
结束命名空间我已找到问题的根源 该错误是由我在调用AddAssembly(typeof(Type))之前没有调用Configure()方法引起的。当我创建SessionFactory对象时会发生这种情况 以下是此解决方案的VB示例: 之前
Private Shared ReadOnly Property SessionFactory() As ISessionFactory
Get
If _sessionFactory Is Nothing Then
Dim configuration As New Configuration
configuration.AddAssembly(GetType(Meeting).Assembly)
_sessionFactory = configuration.BuildSessionFactory
End If
Return _sessionFactory
End Get
End Property
之后
Private Shared ReadOnly Property SessionFactory() As ISessionFactory
Get
If _sessionFactory Is Nothing Then
Dim configuration As New Configuration
//Was missing
configuration.Configure()
//Configure
configuration.AddAssembly(GetType(Meeting).Assembly)
_sessionFactory = configuration.BuildSessionFactory
End If
Return _sessionFactory
End Get
End Property
您的假设是错误的:)Nhibernate使用现有表,它不创建表。你能粘贴你的映射吗?@Claudio NHibernate可以创建表,如果你使用SchemaExport.create(true,true)@用户:您能给我们看一个
示例吗?当然可以使用现有的表,我们只需要看看您在哪里犯了错误。:)@拉斐尔·贝利亚德:谢谢你的澄清。那是一个极端的例子。用户被困在一个更简单的场景中:)嗨,Huys,我已经提供了上面的映射和vb类。也许你能告诉我我的映射出了什么问题。如果您也能让我参考一些示例,在这些示例中,我可以在现有表上使用NHibernate,而无需重新生成。
Private Shared ReadOnly Property SessionFactory() As ISessionFactory
Get
If _sessionFactory Is Nothing Then
Dim configuration As New Configuration
configuration.AddAssembly(GetType(Meeting).Assembly)
_sessionFactory = configuration.BuildSessionFactory
End If
Return _sessionFactory
End Get
End Property
Private Shared ReadOnly Property SessionFactory() As ISessionFactory
Get
If _sessionFactory Is Nothing Then
Dim configuration As New Configuration
//Was missing
configuration.Configure()
//Configure
configuration.AddAssembly(GetType(Meeting).Assembly)
_sessionFactory = configuration.BuildSessionFactory
End If
Return _sessionFactory
End Get
End Property