Я пытаюсь добавить объект в базу данных SQL с помощью EntityFramework 6, он выглядит следующим образом:
Таблица:
CREATE TABLE [dbo].[jobb](
[starttid] [datetime] NULL,
[sluttid] [datetime] NULL,
[rowversion] [timestamp] NOT NULL,
[service] [nvarchar](100) NOT NULL,
[jobb_key] [int] NOT NULL,
CONSTRAINT [PK_service_jobb] PRIMARY KEY CLUSTERED
(
[jobb_key] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Класс, представляющий таблицу:
public class Jobb
{
public DateTime? starttid { get; set; }
public DateTime? sluttid { get; set; }
[Timestamp]
public byte[] rowversion { get; set; }
public string service { get; set; }
[Key]
public int jobb_key { get; set; }
}
Код, который пытается добавить новый объект в базу данных:
using (var context = new ServiceJobbContext(_settingsService))
{
var current = await context.ServiceJobb.FirstOrDefaultAsync(c => c.jobb_key == serviceJobb.jobb_key);
if (current == null)
current = context.ServiceJobb.Add(serviceJobb);
else
{
current.service = serviceJobb.service;
current.sluttid = serviceJobb.sluttid;
current.starttid = serviceJobb.starttid;
current.jobb_key = serviceJobb.jobb_key;
}
await context.SaveChangesAsync();
return serviceJobb;
}
Я проверил, задан ли ключ jobb_key, но все же я получаю это исключение при запуске SaveChangesAsync:
SqlException: Невозможно вставить значение NULL в столбец 'jobb_key', таблица 'MyDB.dbo.jobb';столбец не допускает пустых значений.Вставить не удается.Оператор был прекращен.
Почему я получаю это исключение?