Why does Entity Framework not generate and auto increment the Id's?
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Web;
namespace TwoFactorAuthentication.API.Models
{
public class leave
{
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity), Key()]
public int Id { get; set; }
public DateTime date { get; set; }
public decimal length_hours { get; set; }
public decimal lenght_days { get; set; }
public int status { get; set; }
public string comments { get; set; }
public int leave_request_id { get; set; }
[Required(ErrorMessage = "Leave Type ID")]
public int leave_type_id { get; set; }
public int emp_number { get; set; }
[Required(ErrorMessage = "Start Time")]
public DateTime start_time { get; set; }
[Required(ErrorMessage = "End Time")]
public DateTime end_time { get; set; }
public int duration_type { get; set; }
}
public class leave_request
{
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity), Key()]
public int id { get; set; }
public DateTime date_applied { get; set; }
public int leave_type_id { get; set; }
public int emp_number { get; set; }
public string comments { get; set; }
}
}
my sql table
SELECT * FROM hrmssoft.aspnetusers;
CREATE TABLE leave_request` (
`id` int(10) unsigned NOT NULL,
`leave_type_id` int(10) unsigned NOT NULL,
`date_applied` date NOT NULL,
`emp_number` int(7) NOT NULL,
`comments` varchar(256) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `emp_number` (`emp_number`),
KEY `leave_type_id` (`leave_type_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
controller class-
public async Task<ihttpactionresult> CreateLeaveRequest(ohrm_leave_request leaverequest)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
leaverequest.date_applied = DateTime.Now;
lvcontext.ohrm_leave_request.Add(leaverequest);
await lvcontext.SaveChangesAsync();
return Ok();
}
What I have tried:
My sql data base table
id` int(10) unsigned Primary NOT NULL,
for id auto-generate.so i am use
this code
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity), Key()]
public int id { get; set; }
i send these value through postman
{ "leave_type_id":"4",
"emp_number":87,
"comments":"Hello how are you !."
}