Entity Framework Code First - Cast smallint und integer int32

Im arbeiten auf ein kleines service tool für eine Datenbank. Mein problem ist, dass durch das Letzte update, einige smallint-Spalten werden musste geändert werden in integer.

public class TEST
{
    public int ID { get; set; }
    //public Int16 ID { get; set; }
    public string TEST { get; set; }

}

Änderte ich die Art von Int16 int. Alles funktioniert gut, außer, dass ich nicht verwenden können, es mit der alten Version der Datenbank nicht mehr. Die Ausnahme ist so etwas wie "System.Int32 erwartet, gefunden Typ-System.Int16".

Gibt es eine Möglichkeit zu casten alle smallint und integer int32?

Irgendwelche Ideen? Meine Umgebung: EntityFramework 5.0.0 .NET 4.5 FirebirdClient 3.0.2.0

Habe ich versucht zu zwingen, ein Stich in den modelbuilder:

        modelBuilder.Entity<TEST>()
        .Property(p => p.ID)
        .HasColumnType("smallint");

Ausnahme:

Fehler 2019: Die angegebenen Zuordnung ist nicht gültig. Der Typ " Edm.Int32[Nullable=False,DefaultValue=]' Mitglied 'ID' in Typ 'ContextRepository.TEST' ist nicht kompatibel mit 'FirebirdClient.smallint[Nullable=False,DefaultValue=,StoreGeneratedPattern=Identität] " von Mitglied 'SCHLUESSEL' in Typ 'CodeFirstDatabaseSchema.BUNDLAND'

Stellen Sie die ID Int16 und dann Gießen Sie alles in smallint (HasColumnType("int")) funktioniert gut, aber würde mir Ausnahmen, mit Nummern größer als 31767(smallint max)...

  • Warum können Sie nicht aktualisieren Sie die Datenbank INTEGER-Spalte?
  • Ich bin nur das schreiben eines maintenance-Programm und haben Bedenken über die Nebenwirkungen in der Anwendung...
InformationsquelleAutor Dust258 | 2013-08-07
Schreibe einen Kommentar