J'ai une classe de test et une propriété ExecutionDate
qui stocke uniquement la date mais lorsque nous utilisons [DataType(DataType.Date)]
qui stocke également la partie heure dans la base de données, mais je ne souhaite que la partie date.
public class Test
{
[Key]
public int Id { get; set; }
[DataType(DataType.Date)]
public DateTime ExecutionDate { get; set; }
}
Existe-t-il un moyen de stocker uniquement la date à l'heure dans la base de données en utilisant Entity Framework? Aidez-moi, s'il vous plaît....
J'ai ajouté un instantané lors de l'utilisation de [DataType(DataType.Date)]
qui stocke la partie de temps 00:00 Je veux supprimer cela
Je pense que vous essayez de spécifier le type de colonne de base de données. Vous pouvez utiliser des annotations de données comme décrit dans l'article this .
Voici un exemple :
[Table("People")]
public class Person
{
public int Id { get; set; }
[Column(TypeName = "varchar")]
public string Name { get; set; }
[Column(TypeName="date")]
public DateTime DOB { get; set; }
}
Par défaut, la chaîne est traduite en nvarchar, nous avons changé cela ici. Aussi Datetime (c'est ce que vous avez demandé, je suppose) qui, par défaut, correspond à datatime dans le serveur SQL, est changé en date
qui stocke uniquement la partie date et non la partie heure d'une valeur DateTime
.
Comme David l'a dit ci-dessus, une fois que vous introduisez ces données dans l'application, ce sera un DateTime avec l'horodatage ajouté à la date. Ce serait le même résultat aussi si vous stockiez la date sous forme de chaîne et utilisiez Convert pour changer en DateTime pour toute manipulation:
string date = "2015-11-17";
var dateTime = Convert.ToDateTime(date);
À moins que vous ne vouliez manipuler des chaînes dans votre application pour éviter l'horodatage, vous ne pouvez travailler qu'avec DateTime. Cependant, à des fins d'affichage, vous pouvez toujours formater la date et supprimer l'horodatage:
var dateTime = DateTime.Now;
var formatDate = dateTime.ToString("yyyy-MM-dd");
Remplacez DateTime par nvarchar (10) dans la base de données si vous utilisez DateTime dans la base de données 00.00.00 sera automatiquement attribué par la base de données
string date = DateTime.Today.ToShortDateString();