Oracle EF Core - как настроить столбец datetime для автоматической генерации? - PullRequest
0 голосов
/ 20 июня 2019

Во-первых, это просто простая функция, которая поддерживается по крайней мере EF Core для SQL Server, но для Oracle (провайдер, реализованный Oracle), я не уверен, поддерживается ли он.

ПростоУ меня есть класс сущностей, подобный этому:

public class Item {
    public int Id {get;set;}
    public DateTime CreatedDateUtc {get;set;}
}

Проблема в том, как настроить ядро ​​EF для автоматической генерации даты базы данных в CreatedDateUtc каждый раз при вставке без необходимости устанавливать это значение на стороне клиента?

Вот что я пробовал:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
   modelBuilder.Entity<Item>()
               .Property(e => e.CreatedDateUtc)
               .ValueGeneratedOnAdd();                 
}

Но после запуска add-migration сгенерированный класс просто пуст, как это:

protected override void Up(MigrationBuilder migrationBuilder)
{

}

protected override void Down(MigrationBuilder migrationBuilder)
{

}

Так что на самом деле это такничего с этой конфигурацией (не поддерживается?).Кроме того, во-первых, необходимо сгенерировать значение даты и времени, а во-вторых, сгенерировать значение UTC дата-время.Я верю в выполнимость первого требования, тогда как второе кажется невозможным, по крайней мере, с Oracle EF Core?(nuget name: Oracle.EntityFrameworkCore).

Если у вас есть какое-либо решение для достижения первого требования, сообщите его в любом случае, даже если второе требование невозможно.По крайней мере, тогда нам нужно обойтись.Спасибо.

1 Ответ

0 голосов
/ 20 июня 2019

Попробуйте это -

protected override void OnModelCreating(ModelBuilder modelBuilder)
   {
          modelBuilder.Entity<Item>()
               .Property(b => b.CreatedDateUtc)
               .HasDefaultValueSql("GETUTCDATE()");
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...