Ich habe eine Entität mit einer Int-Eigenschaft, die ich als tinyint
in Sql Server gespeichert werden soll. Das habe ich mit der flüssigen api erfolgreich geschafft.Spezifizierende Spalte TypeName EntityFramework Core löst InvalidCastException
Allerdings, wenn ich die Datenbank abfragen, bekomme ich InvalidCastException: Specified cast is not valid.
Mein (vereinfacht) Code:
public class Category
{
public int Id { get; set; }
public int Level { get; set; }
public string Name { get; set; }
}
public class ProductContext : DbContext
{
public DbSet<Category> Categories { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Category>()
.Property(m => m.Level)
.HasColumnType("tinyint");
base.OnModelCreating(modelBuilder);
}
}
Wenn ich die Level
Eigenschaft Typ byte
ändern, ich die Ausnahme nicht bekommen.
Was mache ich falsch?
so was ist dann der Zweck der 'modelBuilder.Entity() .Property (m => m.Level) .HasColumnType ("tinyint");'? –
Manchmal kann ein C# -Typ einer von mehreren SQL-Typen sein (z. B. Zeichenfolge könnte CHAR oder VARCHAR oder NVARCHAR sein), daher kann es erforderlich sein, den SQL-Spaltentyp anzugeben. – SBFrancies