0

MVC オーチャード サービス ファイルを使用して、ユーザーが「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' に挿入できません。列はヌルを許可しません。INSERT の失敗

私の移行ファイルでは、「id」を .ContentPartRecord() に設定しています。これは、サービスが使用されたときに次のレコードを自動的に作成すると想定していました

4

1 に答える 1