2017-08-15 2 views
1

Donc, avec Entity Framework 1.1 J'ai eu des entités comme celui-cientité de base 2 ne voit pas les extensions SQLite

modelBuilder.Entity<Resolution>() 
     .Property(r => r.Created) 
     .ValueGeneratedOnAddOrUpdate() 
     .ForSqliteHasColumnType("Timestamp")    
     .ForSqliteHasDefaultValueSql("CURRENT_TIMESTAMP"); 

modelBuilder.Entity<Resolution>() 
     .Property(r => r.Updated) 
     .ForSqliteHasColumnType("Timestamp") 
     .IsRequired(); 

qui a bien fonctionné. Après mise à niveau vers .net core 2.0 et entity framework 2.0, le

.ForSqliteHasColumnType("Timestamp") 

ne semble plus être disponible. En fait toutes les fonctions "ForSqlite *" ne sont pas là. J'ai mis à jour le "Microsoft.EntityFrameworkCore.Sqlite" vers 2.0. J'ai

using Microsoft.EntityFrameworkCore; 

Ont-ils changé quelque chose? Je ne peux pas trouver quoi que ce soit dans les docs, alors les fournisseurs sql ne sont pas rétrocompatibles avec .NET Core 1.1.

Merci

+1

Ces méthodes ont été supprimées dans la version 2.0. Une section de https://github.com/aspnet/EntityFramework/issues/8923#issuecomment-310242378 le couvre. – Smit

Répondre

2

Je ne trouve nulle part dit au sujet des changements. Mais vous pouvez utiliser le code ci-dessous à la place dans EF Core 2.0.

.HasDefaultValueSql("CURRENT_TIMESTAMP"); 
0

J'ai eu un problème similaire après la mise à niveau d'un TestProject à EF Core 2.0 hier, dans mon cas, la base de données n'a pas été SQLite, mais MS SQL Server.

J'ai dû remplacer

b.Property(e => e.StartDate).IsRequired().ForSqlServerHasColumnType("Date"); 
b.Property(e => e.LastModified).IsRequired().ForSqlServerHasColumnType("SmallDateTime"); 

avec:

b.Property(e => e.StartDate).IsRequired().HasColumnType("Date"); 
b.Property(e => e.LastModified).IsRequired().HasColumnType("SmallDateTime"); 

Mais après cela fonctionnait à nouveau. Je l'ai testé en recréant la base de données et en vérifiant visuellement les définitions de colonnes nouvellement créées dans MS SQL Server Management Studio.

+0

Oui, c'est ce que j'ai fini par faire. –