при возврате POST не будет создаваться новая запись

Использование файла сервисов MVC Orchard, чтобы позволить пользователю ввести новую запись в таблицу «HoursWorkedToday», позволяя пользователю ввести количество часов, которые он отработал в этот день.

//HoursWorkedService
public class HoursWorkedService : IHoursWorkedService
    {
        private IRepository<HoursWorkedPerDay> _repository = null;

        public HoursWorkedService(IRepository<HoursWorkedPerDay> Repository)
        {
            _repository = Repository;
        }

        public Models.HoursWorkedPerDay Create(HoursWorkedPerDay newRecordForHoursWorked)
        {
            _repository.Create(newRecordForHoursWorked);

            return newRecordForHoursWorked;
        }

//IHoursWorkedService
 public interface IHoursWorkedService : IDependency
    {
        HoursWorkedPerDay Create(HoursWorkedPerDay newRecordForHoursWorked);
    }

//controller
[HttpPost, ActionName("HoursWorkedPerDay")]
        public ActionResult HoursWorkedPerDayPOST(int userId, int hours)
        {  
            DateTime TodaysDate = DateTime.UtcNow;

            HoursWorkedPerDay HoursPerDay = new HoursWorkedPerDay();
            HoursPerDay.Date = TodaysDate;
            HoursPerDay.WorkerRecord_Id = userId;
            HoursPerDay.HoursWorked = hours;

            _hoursWorked.Create(HoursPerDay);

            _notifier.Add(NotifyType.Information, T("Thank you, Hours Added."));

            return RedirectToAction("Index");
        }

но после сообщения я получаю "веб-сайт не может отображаться"

Журналы показывают:

Невозможно вставить значение NULL в столбец «Id» таблицы «Orchard.Timekeeper.dbo.Timekeeper_HoursWorkedPerDay»; столбец не допускает пустых значений. ВСТАВИТЬ не удается

В моем файле миграции для «id» установлено значение .ContentPartRecord(), которое, как я предполагал, автоматически создает следующую запись при использовании службы.


person John    schedule 30.09.2013    source источник
comment
Можете ли вы опубликовать соответствующую миграцию?   -  person Hazza    schedule 01.10.2013


Ответы (1)


Не используйте ContentPartRecord для чего-то, что не является записью части содержимого. Вместо этого добавьте столбец идентификатора самостоятельно в качестве идентификатора, чтобы он автоматически увеличивался. Если он предназначен для записи части содержимого, никогда не используйте его без элемента содержимого. В частности, никогда не используйте репозиторий непосредственно для записей деталей, а вместо этого пользуйтесь диспетчером содержимого.

person Bertrand Le Roy    schedule 02.10.2013