Удаление объекта DF_ETable_EDate __ ###### для преобразования DateTime в DateTime2 - PullRequest
1 голос
/ 10 октября 2019

У меня есть база данных SQL Server с таблицами, созданными с помощью переноса EF Update-Database. У меня есть пара моделей, которые выглядят следующим образом:

[Table("ETable")]
public class ETable
{
    [Key]
    public int Id { get; set; }

    // Other properties go here

    public DateTime EDate { get; set; }
}

Позже я решил использовать DateTime2 глобально, но узнал, что мне нужно отбросить объекты ограничения, такие как 'DF_ETable_EDate __ ######', которые являютсяавтоматически создается для того, чтобы избавиться от ошибки, подобной той, о которой этот пост описывает при попытке обновить базу данных.

Вопрос в том, есть ли какие-либо последствия с удалением этих объектов ограничения? Если будет полезно сохранить их, как мне добавить их обратно?

1 Ответ

1 голос
/ 11 октября 2019

Как прокомментировали другие, вы в основном имеете дело с ограничениями по умолчанию для ваших полей DateTime.

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

To set a default to an arbitrary date:
AlterColumn("dbo.ETable", "EDate", c => c.DateTime(nullable: false, defaultValueSql: "CONVERT(datetime, '2019-01-01')"));

To set default to current date:
AlterColumn("dbo.ETable", "EDate", c => c.DateTime(nullable: false, defaultValueSql: "GETDATE()"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...