Как использовать Fluid API в Entity .net Core 2.1, чтобы установить в поле «дата» - PullRequest
0 голосов
/ 29 мая 2018

У меня есть класс Model, который определяет различные поля.Я могу установить в поле «datetime», и Entity Framework создает таблицу и использует «datetime2 (7).

Я пытаюсь переопределить это, чтобы установить для поля mssql значение« date ».Мне действительно не нужна часть времени.

Аналогично, у меня есть еще одно поле, которое я хочу установить на «время» (дня).Я также не могу установить это.

(И для необязательной полноты я хотел бы поле для продолжительности времени, но мне придется сжечь этот мост, когда я приду к нему.)

Этот вопросболее широко применяется для использования Fluid API для создания любых других конкретных полей.

1 Ответ

0 голосов
/ 29 мая 2018

Для столбца типа date вы должны использовать свойство типа DateTime и HasColumnType Свободный API:

public class MyEntity
{
    // ...
    public DateTime DateVal { get; set; }
}

modelBuilder.Entity<MyEntity>()
    .Property(e => e.DateVal)
    .HasColumnType("date");

Для столбца типа time вы просто используете TimeSpan свойство типа (не требуется Fluent API):

public class MyEntity
{
    // ...
    public TimeSpan TimeVal { get; set; }
}

Сгенерированная команда SQL из миграции будет выглядеть примерно так:

CREATE TABLE [MyEntity] (
    [Id] int NOT NULL IDENTITY,
    [DateVal] date NOT NULL,
    [TimeVal] time NOT NULL,
    CONSTRAINT [PK_MyEntity] PRIMARY KEY ([Id])
);
...