В моем пространстве имен модели у меня есть разные классы моделей. У меня есть DateTime
поля в разных классах. Когда я без проблем запускаю
dotnet ef migrations add InitialCreate
, это добавляет миграцию, и я тоже могу обновить базу данных.
Когда я посмотрел свой initialCommit.Designer.cs
, я увидел, что все мои DateTime
свойства имеют текст типа столбца.
Как это:
namespace myapp.API.Models
{
public class User
{
public int Id { get; set; }
public string UserName { get; set; }
public string Gender { get; set; }
public DateTime BirthDate { get; set; }
public string KnownAs { get; set; }
public DateTime CreatedOn { get; set; }
public DateTime LastActive { get; set; }
..
}
}
namespace myapp.API.Models
{
public class Photo
{
public int Id { get; set; }
public string Url { get; set; }
public string Description { get; set; }
public DateTime DateAdded { get; set; }
public bool IsMain { get; set; }
public string PublicId { get; set; }
public User User { get; set; }
public int UserId { get; set; }
}
}
namespace myapp.API.Migrations
{
[DbContext(typeof(DataContext))]
[Migration("20200206201625_initialCommit")]
partial class initialCommit
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "3.1.1");
modelBuilder.Entity("myapp.API.Models.Photo", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<DateTime>("DateAdded")
.HasColumnType("TEXT");
b.Property<string>("Description")
.HasColumnType("TEXT");
b.Property<bool>("IsMain")
.HasColumnType("INTEGER");
b.Property<string>("PublicId")
.HasColumnType("TEXT");
b.Property<string>("Url")
.HasColumnType("TEXT");
b.Property<int>("UserId")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("UserId");
b.ToTable("Photos");
});
modelBuilder.Entity("myapp.API.Models.User", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<DateTime>("BirthDate")
.HasColumnType("TEXT");
b.Property<string>("City")
.HasColumnType("TEXT");
b.Property<string>("Country")
.HasColumnType("TEXT");
b.Property<DateTime>("CreatedOn")
.HasColumnType("TEXT");
b.Property<string>("Gender")
.HasColumnType("TEXT");
b.Property<string>("Interests")
.HasColumnType("TEXT");
b.Property<string>("Introduction")
.HasColumnType("TEXT");
b.Property<string>("KnownAs")
.HasColumnType("TEXT");
b.Property<DateTime>("LastActive")
.HasColumnType("TEXT");
b.Property<string>("LookingFor")
.HasColumnType("TEXT");
b.Property<byte[]>("PasswordHash")
.HasColumnType("BLOB");
b.Property<byte[]>("PasswordSalt")
.HasColumnType("BLOB");
b.Property<string>("UserName")
.HasColumnType("TEXT");
b.HasKey("Id");
b.ToTable("Users");
});
modelBuilder.Entity("myapp.API.Models.Value", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<string>("Name")
.HasColumnType("TEXT");
b.Property<string>("Type")
.HasColumnType("TEXT");
b.HasKey("Id");
b.ToTable("Values");
});
modelBuilder.Entity("myapp.API.Models.Photo", b =>
{
b.HasOne("myapp.API.Models.User", "User")
.WithMany("Photos")
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
});
#pragma warning restore 612, 618
}
}
}
Как видите, все мои DateTime
поля определены так:
b.Property<DateTime>("DateAdded").HasColumnType("TEXT");