MicroSoft.EntityFrameworkcore.Model.Validation 2201] weibs. 'MytableEntity' ist mit einer Datenbank-generierten Standardeinstellung konfiguriert, hat jedoch keinen konfigurierten Sentinel-Wert. Die Datenbank-generierte Standardeinstellung wird immer für Einfügungen verwendet, wenn die Eigenschaft den Wert "Fehler" hat, da dies die CLR-Standardeinstellung für den Typ "myenum" ist. Weitere Informationen finden Sie unter https://aka.ms/efcore-docs-default-values. Was ist ein Sentinel -Wert in SQL Server? (Ja, ich habe dem Microsoft -Link gefolgt, aber keine Informationen dort) < /li>
[*] Wie legte ich einen Sentinel -Wert für die Enum -Eigenschaft fest? (Ich möchte nicht nullbar verwenden)
Code
Code: Select all
MyTableEntity
Code: Select all
public partial class MyTableEntity
{
// primary key and other properties not shown
// This is not a foreign key to another table, just an enum
public MyEnum MyEnumPropertyID { get; set; }
}
< /code>
Der Modellbuilder definiert den Standard als gezeigt < /p>
modelBuilder.Entity(entity =>
{
//other properties not shown
entity.Property(e => e.MyEnumPropertyID)
.IsRequired()
.HasDefaultValue((object)MyEnum.Default)
.HasConversion(); //
}
< /code>
und der Enum ist nur eine einfache alte Gartensorte < /p>
public enum MyEnum { Error, Default, HaveAGreatDay }