Estoy usando ASP.NET texto modelo MVC (no Core) de la plantilla en mi proyecto, que utiliza EF6 como ORM. Base de datos de SQL Server Express.
Aquí está mi entidad objeto (haciendo caso omiso de que no están relacionadas con las propiedades):
public class Asset : AggregateRoot<long>
{
[DataType(DataType.DateTime)]
public DateTime? LastControlTime { get; set; }
}
Cuando creo un nuevo Activo, este campo adecuadamente creado como NULL. Así, todo funciona como se pretendía que fuera la primera vez. Pero cuando intento actualizar un objeto con una simple llamada de servicio, se tornillos de seguridad.
Aquí está el método de la aplicación de la clase de servicio:
public void ResetLastControlTime (EntityDto<long> input)
{
var asset = Repository.Get(input.Id);
asset.LastControlTime = default(DateTime?);
}
Esto debe restablecer ese campo a null. También probé asset.LastControlTime = null;
. Pero al final está escrito "0001-01-01 00:00:00.0000000" para que el campo en la base de datos. Tengo un montón de lugares en el código que tengo el control de un valor nulo así que ahora he tenido que cambiar de toneladas de archivos antiguos o tengo que encontrar alguna manera de restablecer ese campo simplemente NULO.
He comprobado preguntas similares aquí, pero no puede encontrar una respuesta. Todos ellos se habla de que aceptan valores null DateTime, que ya tengo. En SQL server esquema de la tabla, el Tipo de Datos es datetime2(7)
, así que supongo que es correcto también. Ah, y eliminar el Tipo de datos de anotación también no cambiar nada.
Así que lo que me estoy perdiendo aquí? ¿Qué debo revisar para encontrar el problema?