Quindi con il framework di entità 1.1 avevo entità come questa
modelBuilder.Entity<Resolution>()
.Property(r => r.Created)
.ValueGeneratedOnAddOrUpdate()
.ForSqliteHasColumnType("Timestamp")
.ForSqliteHasDefaultValueSql("CURRENT_TIMESTAMP");
modelBuilder.Entity<Resolution>()
.Property(r => r.Updated)
.ForSqliteHasColumnType("Timestamp")
.IsRequired();
che ha funzionato bene. Dopo l'aggiornamento a .net core 2.0 e entity framework 2.0 il
.ForSqliteHasColumnType("Timestamp")
non sembra essere più disponibile Infatti tutte le funzioni "ForSqlite *" non ci sono.
Ho aggiornato "Microsoft.EntityFrameworkCore.Sqlite" a 2.0. io ho
using Microsoft.EntityFrameworkCore;
Hanno cambiato qualcosa? Non riesco a trovare nulla nei documenti altro quindi i provider sql non sono retrocompatibili con .NET Core 1.1.
Grazie
Non ho trovato da nessuna parte ha detto sui cambiamenti. Ma puoi usare sotto il codice invece in EF Core 2.0.
.HasDefaultValueSql("CURRENT_TIMESTAMP");
Ho avuto un problema simile dopo aver aggiornato un testproject a EF Core 2.0 ieri, nel mio caso il database non era SQLite, ma MS SQL Server.
Dovevo sostituire
b.Property(e => e.StartDate).IsRequired().ForSqlServerHasColumnType("Date");
b.Property(e => e.LastModified).IsRequired().ForSqlServerHasColumnType("SmallDateTime");
con:
b.Property(e => e.StartDate).IsRequired().HasColumnType("Date");
b.Property(e => e.LastModified).IsRequired().HasColumnType("SmallDateTime");
Ma dopo ciò funzionava di nuovo. L'ho provato ricreando il database e verificando visivamente le definizioni delle colonne appena create in MS SQL Server Management Studio.