Sto utilizzando ASP.NET Boilerplate MVC (non Core) modello nel mio progetto, che utilizza EF6 come ORM. Database di SQL Server Express.
Ecco il mio entità oggetto (ignorando non collegati tra di loro proprietà):
public class Asset : AggregateRoot<long>
{
[DataType(DataType.DateTime)]
public DateTime? LastControlTime { get; set; }
}
Quando vado a creare una nuova Attività, in questo campo, opportunamente creata come NULL. Così, tutto funziona come stabilito in un primo momento. Ma quando cerco di aggiornare un oggetto con una semplice chiamata al servizio, viti fino.
Ecco il metodo di applicazione classe di servizio:
public void ResetLastControlTime (EntityDto<long> input)
{
var asset = Repository.Get(input.Id);
asset.LastControlTime = default(DateTime?);
}
Questo dovrebbe ripristinare il campo a null. Ho provato anche asset.LastControlTime = null;
. Ma, alla fine, è scritto "0001-01-01 00:00:00.0000000" per il campo nel database. Ho un sacco di posti nel codice che ho il controllo per un valore null così ora ho dovuto cambiare tonnellate di vecchi file o devo trovare qualche modo per ripristinare il campo semplicemente NULLO.
Ho controllato domande simili qui ma non riesco a trovare una risposta. Tutti di loro racconta DateTime nullable, che già ho. In SQL server schema di tabella, il Tipo di Dati è datetime2(7)
, quindi credo che è corretta. Oh, e di eliminare il Tipo di annotazione anche non cambiare nulla.
Quindi, quello che mi manca qui? Cosa devo controllare per trovare il problema?