Я пишу новое приложение с ASP.NET Core 2.2.4 с EF Core Code First подход с миграциями. Я написал свои модели доменов и обновил базу данных через консоль диспетчера пакетов, но в результате все свойства DateTime, имеющиеся у меня во всех моделях доменов, были созданы в виде столбцов таблицы DateTime2 (7).
Мне нужно только DateTime.
Сначала я попытался изменить это, написав запрос на SQL-сервере, чтобы изменить тип данных, и в SQL Server это показало, что оно изменилось на datetime. Но когда я открываю Обозреватель объектов SQL Server в Visual Studio, он все равно показывает столбец как тип datetime2 (7).
После этого я попытался добавить следующую аннотацию к свойствам DateTime.
[Столбец (TypeName = "DateTime")]. После этого я добавил миграцию и обновил базу данных через диспетчер пакетов. Это не имело никакого эффекта.
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Web;
namespace GYM.CoreApp.WebUI.Models
{
public class Employee
{
[Key]
public int EmployeeId { get; set; }
[Required]
[MaxLength(100), MinLength(2)]
[Display(Name ="First Name")]
public string FirstName { get; set; }
[Required]
[MaxLength(100), MinLength(2)]
[Display(Name = "Last Name")]
public string LastName { get; set; }
[Required]
[Column(TypeName = "DateTime")]
[Display(Name = "Date of birth")]
public DateTime DateOfBirth { get; set; }
[Required]
[MaxLength(13), MinLength(13)]
[Display(Name = "EMBG")]
public string EMBG { get; set; }
[Required]
[MaxLength(200), MinLength(2)]
[Display(Name = "Home address")]
public string Address { get; set; }
[Required]
[MaxLength(13), MinLength(9)]
[Display(Name = "Phone number")]
public string PhoneNumber { get; set; }
[Required]
[Display(Name = "Salary per month")]
public int SalaryPerMonth { get; set; }
[Required]
[Column(TypeName = "DateTime")]
[Display(Name = "Date when joined company")]
public DateTime DateWhenJoined { get; set; }
[Required]
[Display(Name = "Still Employed")]
public bool StillEmployed { get; set; }
}
}