Странные странные вещи происходят в репозитории! - PullRequest
1 голос
/ 29 мая 2009

SubSonic 2.2. Я использую шаблон записи репозитория с таблицей "встречи" с назначением встречи в качестве автоматически увеличивающегося целого.

Я пытаюсь обновить его, но когда я обновляю поля чем-то совершенно другим, грязные столбцы всегда равны нулю, и я получаю исключение.

System.NullReferenceException: ссылка на объект не установлена ​​для экземпляра объекта. в SubSonic.DataService.ExecuteQuery (QueryCommand cmd) в SubSonic.SubSonicRepository.Update [T] (RepositoryRecord 1 item, String userName) at janji.Janji.Data.DB.Update[T](RepositoryRecord 1 элемент) в A: \ Source \ VS2008 \ Web \ Apps \ janji \ janji \ Classes \ DAL \ AllStructs.vb : строка 197 в janji.WebForm4.SaveData () в A: \ Source \ VS2008 \ Web \ Apps \ janji \ janji \ UI \ Appt.aspx.vb: строка 343

Вот мой код:

        Try
        If Appointment.AppointmentId > 0 Then

            Appointment.AddressName = uxHotel.Text
            Appointment.Address = uxAddress.Text
            Appointment.AppStartTime = Date.Parse(uxApptDate.SelectedDate.Value.ToShortDateString + " " + uxApptStartTime.SelectedDate.Value.ToShortTimeString)
            Appointment.ApptEndTime = Date.Parse(uxApptDate.SelectedDate.Value.ToShortDateString + " " + uxApptEndTime.SelectedDate.Value.ToShortTimeString)
            Appointment.Completed = uxCOmpleted.Checked
            Appointment.DropNumber = uxDropNum.Text
            Appointment.Total = 0
            Appointment.EmployeeId = 0
            Appointment.Model = uxModel.Text
            Appointment.DropAmount = Decimal.Parse(uxDropAmount.SelectedValue)
            Appointment.RoomNumber = uxRoom.Text

            'If Appointment.DirtyColumns.Count > 0 Then
            Janji.Data.DB.Update(Of Janji.Data.Appointment)(Appointment)
            'End If
        End If
    Catch ex As Exception
        _ErrorMessage = ex.ToString
        RetVal = False
        lErrors.Text = _ErrorMessage
        lErrors.Visible = True
    End Try

1 Ответ

2 голосов
/ 29 мая 2009

Вы используете предоставляемые нами Структуры вместо создания объекта Назначения. Сделайте все, что вы здесь делаете, но создайте экземпляр Appointment и присвойте ему значения. Затем передайте этот экземпляр в репозиторий.

...