Sto generando una tabella di database utilizzando un campo enum richiesto. Tuttavia, quando si alimenta la tabella, è possibile omettere di alimentare il campo enum: EF non getterà alcun messaggio di errore ma invierà il campo con il valore 0. Puoi aiutarmi a capire cosa sta succedendo? GrazieCodice Entity Framework 6 Primo: il tipo di dati Enum richiesto non funziona
public enum TestEnum {
test1=1,
test2=2,
test3=3,
test4=4
}
public class TestEnumClass
{
[Key]
public int id { get; set; }
[Required(ErrorMessage = "Required"), Display(Name = "Test Enum")]
public TestEnum test{ get; set; }
}
So che questo è stato tre anni fa e tutto, ma questo il metodo duplica le informazioni che probabilmente causerebbero errori lungo la linea. Ad esempio, se aggiungo test5 a 'TestEnum', dovrei ricordare di cambiare l'intervallo su qualsiasi oggetto EF che abbia una proprietà' TestEnum'. – Joe
@Joe: imposta l'attributo di convalida in questo modo [Range (1, int.MaxValue), Display (Name = "Test Enum")], e non avrai problemi con i futuri valori enumerati a meno che non sia int il valore viene inserito manualmente, se proprio è necessario è possibile aggiungere una validazione personalizzata per difendersi da questi casi, ad esempio lasciando che TestEnumClass implementi IValidateObject. Il valore 0 è un valore predefinito quando non viene fornito alcun valore, gli interi positivi maggiori di zero devono essere inseriti manualmente. –