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() に設定しています。これは、サービスが使用されたときに次のレコードを自動的に作成すると想定していました