2010-09-13 46 views
0

我目前尝试使用NHibernate的上一个项目,我没有权限CREATE TABLE在SQL 2005我怎样才能NHibernate的领域类映射与现有的表

我不断收到一个映射错误,我的假设是我没有通过生成表来设置表。假设NHibernate只能成功映射其工具生成的表格,这对我是否公平?

如果不是,我如何确保它适用于现有的表格?


9月14日 响应请求以提供更多的细节:

<id name="MeetingID" column="MeetingID" type="int"> 
    <generator class="identity" /> 
</id> 
<property name="Description" /> 
<property name="OwnerNetworkID" /> 
<property name="StartDate" /> 
<property name="EndDate" /> 
<property name="DayStartHour" /> 
<property name="DayStartMinute" /> 
<property name="DayEndHour" /> 
<property name="DayEndMinute" /> 
<property name="BreakStartHour" /> 
<property name="BreakStartMinute" /> 
<property name="BreakEndHour" /> 
<property name="BreakEndMinute" /> 
<property name="IsActive" /> 
<property name="SessionIntervalMinutes" /> 
<property name="PeoplePerSlot" /> 
<property name="DateCreated" /> 
<property name="LastModified" /> 
<property name="UpdatedBy" /> 
<property name="ChangeTimestamp" /> 
<property name="ClosedForBookingDaysPrior" /> 
<property name="DefaultMeetingRoom" /> 

这是类:

命名空间了myNameSpace 公共类别股东会议

Private _MeetingID As Integer 
    Private _OwnerNetworkID As String 
    Private _Description As String 

    Public Overridable Property MeetingID() As Integer 
     Get 
      Return _MeetingID 
     End Get 
     Set(ByVal value As Integer) 
      _MeetingID = value 
     End Set 
    End Property 


    Public Overridable Property Description() As String 
     Get 
      Return _Description 
     End Get 
     Set(ByVal value As String) 
      _Description = value 
     End Set 
    End Property 

    Public Overridable Property OwnerNetworkID() As String 
     Get 
      Return _OwnerNetworkID 
     End Get 
     Set(ByVal value As String) 
      _OwnerNetworkID = value 
     End Set 
    End Property 

    Private _StartDate As Date 
    Public Overridable Property StartDate() As Date 
     Get 
      Return _StartDate 
     End Get 
     Set(ByVal value As Date) 
      _StartDate = value 
     End Set 
    End Property 


    Private _EndDate As Date 
    Public Overridable Property EndDate() As Date 
     Get 
      Return _EndDate 
     End Get 
     Set(ByVal value As Date) 
      _EndDate = value 
     End Set 
    End Property 

    Private _DayStartHour As Byte 
    Public Overridable Property DayStartHour() As Byte 
     Get 
      Return _DayStartHour 
     End Get 
     Set(ByVal value As Byte) 
      _DayStartHour = value 
     End Set 
    End Property 

    Private _DayStartMinute As Byte 
    Public Overridable Property DayStartMinute() As Byte 
     Get 
      Return _DayStartMinute 
     End Get 
     Set(ByVal value As Byte) 
      _DayStartMinute = value 
     End Set 
    End Property 

    Private _DayEndHour As Byte 
    Public Overridable Property DayEndHour() As Byte 
     Get 
      Return _DayEndHour 
     End Get 
     Set(ByVal value As Byte) 
      _DayEndHour = value 
     End Set 
    End Property 

    Private _DayEndMinute As Byte 
    Public Overridable Property DayEndMinute() As Byte 
     Get 
      Return _DayEndMinute 
     End Get 
     Set(ByVal value As Byte) 
      _DayEndMinute = value 
     End Set 
    End Property 

    Private _BreakStartHour As Byte 
    Public Overridable Property BreakStartHour() As Byte 
     Get 
      Return _BreakStartHour 
     End Get 
     Set(ByVal value As Byte) 
      _BreakStartHour = value 
     End Set 
    End Property 

    Private _BreakStartMinute As Byte 
    Public Overridable Property BreakStartMinute() As Byte 
     Get 
      Return _BreakStartMinute 
     End Get 
     Set(ByVal value As Byte) 
      _BreakStartMinute = value 
     End Set 
    End Property 

    Private _BreakEndHour As Byte 
    Public Overridable Property BreakEndHour() As Byte 
     Get 
      Return _BreakEndHour 
     End Get 
     Set(ByVal value As Byte) 
      _BreakEndHour = value 
     End Set 
    End Property 

    Private _BreakEndMinute As Byte 
    Public Overridable Property BreakEndMinute() As Byte 
     Get 
      Return _BreakEndMinute 
     End Get 
     Set(ByVal value As Byte) 
      _BreakEndMinute = value 
     End Set 
    End Property 


    Private _IsActive As Byte 
    Public Overridable Property IsActive() As Byte 
     Get 
      Return _IsActive 
     End Get 
     Set(ByVal value As Byte) 
      _IsActive = value 
     End Set 
    End Property 


    Private _SessionIntervalMinutes As Byte 
    Public Overridable Property SessionIntervalMinutes() As Byte 
     Get 
      Return _SessionIntervalMinutes 
     End Get 
     Set(ByVal value As Byte) 
      _SessionIntervalMinutes = value 
     End Set 
    End Property 

    Private _PeoplePerSlot As Short 
    Public Overridable Property PeoplePerSlot() As Short 
     Get 
      Return _PeoplePerSlot 
     End Get 
     Set(ByVal value As Short) 
      _PeoplePerSlot = value 
     End Set 
    End Property 

    Private _DateCreated As Date 
    Public Overridable Property DateCreated() As Date 
     Get 
      Return _DateCreated 
     End Get 
     Set(ByVal value As Date) 
      _DateCreated = value 
     End Set 
    End Property 
    Private _LastModified As Date 
    Public Overridable Property LastModified() As Date 
     Get 
      Return _LastModified 
     End Get 
     Set(ByVal value As Date) 
      _LastModified = value 
     End Set 
    End Property 

    Private _UpdatedBy As String 
    Public Overridable Property UpdatedBy() As String 
     Get 
      Return _UpdatedBy 
     End Get 
     Set(ByVal value As String) 
      _UpdatedBy = value 
     End Set 
    End Property 

    Private _ChangeTimestamp As Byte() 
    Public Overridable Property ChangeTimestamp() As Byte() 
     Get 
      Return _ChangeTimestamp 
     End Get 
     Set(ByVal value As Byte()) 
      _ChangeTimestamp = value 
     End Set 
    End Property 

    Private _ClosedForBookingDaysPrior As Byte 
    Public Overridable Property ClosedForBookingDaysPrior() As Byte 
     Get 
      Return _ClosedForBookingDaysPrior 
     End Get 
     Set(ByVal value As Byte) 
      _ClosedForBookingDaysPrior = value 
     End Set 
    End Property 

    Private _DefaultMeetingRoom As String 
    Public Overridable Property DefaultMeetingRoom() As String 
     Get 
      Return _DefaultMeetingRoom 
     End Get 
     Set(ByVal value As String) 
      _DefaultMeetingRoom = value 
     End Set 
    End Property 




End Class 

末命名空间

+1

你的假设是错误的:) NHibernate的作品与现有的表,它创建没有桌子。你能粘贴你的映射吗? – 2010-09-13 16:56:33

+0

@Claudio NHibernate可以创建表,如果你做一个SchemaExport.Create(true,true); – rebelliard 2010-09-13 17:31:36

+1

@user您能告诉我们一个example吗?当然可以使用现有的表格,我们只需要知道你犯了什么错误。 :) – rebelliard 2010-09-13 17:32:49

回答

0

我发现我的问题的根源。

该错误是由于在调用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 
相关问题