2015-06-01 2 views
2

Я изо всех сил стараюсь решить эту проблему, несмотря на то, что на ней много потоков.Не удалось вставить значение NULL в поле (DateTime)

У меня есть класс, который имеет обнуляемого DateTime? поле, как это:

public class ActiveItem 
{ 
    [Key] 
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] 
    public int ID { get; set; } 
    public Nullable<DateTime> TimeStarted { get; set; } 
    public Nullable<DateTime> LastHeard { get; set; } 
} 

У меня есть схемы базы данных определяется как:

CREATE TABLE [dbo].[ActiveItems] (
    [ID]   INT  IDENTITY (1, 1) NOT NULL, 
    [TimeStarted] DATETIME NULL, 
    [LastHeard] DATETIME NULL, 
    CONSTRAINT [PK_ActiveWorkflows] PRIMARY KEY CLUSTERED ([ID] ASC) 
); 

Я затем попытаться сохранить ActiveItem где TimeStarted и LastHeard равны нулю. Однако, когда я пытаюсь сделать это, я получаю следующую ошибку:

"Cannot insert the value NULL into column 'TimeStarted', table 'dbo.ActiveItems'; column does not allow nulls. INSERT fails.\r\nThe statement has been terminated."

Я не могу обойти это.

Странно, что я могу войти на SQL-сервер и создать строку в таблице с нулевыми значениями. Является ли эта инфраструктура сущностей?

+0

Где хранится сопоставление и/или как его обновить? Я не понимал, что какое-то картографирование сохранилось. Googling ..... – gnychis

+0

Да, я имел в виду файл EDMX; =/ –

+0

У меня, похоже, нет EDMX-файла или таблицы '__MigrationHistory' в моих системных таблицах – gnychis

ответ

1

Чтобы проверить, подходит ли вам правильная база данных, do a SQL Trace используя Профайлер.

Вероятно, если нарушение ограничения не соответствует ожидаемому (с точки зрения схемы), что вы попадаете в другую базу данных.

После этого обновите строку подключения, используемую для подключения к Entity Framework, в правильную базу данных.