我在文档中找不到任何东西,但深入挖掘源代码,在的日志中有一条评论
commit 747c86556b2a21526973d462626e299b9bde7b91
:
删除ForSqlServer。。。ForSqlite。。。关系概念的方法
代码可以使用
if (Database.IsSqlServer())
{
modelBuilder.HasColumnName("MySqlServerName");
}
因此,问题中的片段将翻译为:
modelBuilder<Foo>(b =>
{
b.Property(x => x.CreateDate)
.IsRequired();
if (Database.IsSqlServer())
b.Property(x => x.CreateDate).HasDefaultValueSql("getutcdate()");
if (Database.IsSqlite())
b.Property(x => x.CreateDate).HasDefaultValueSql("CURRENT_TIMESTAMP");
}
感谢@IvanStoev指点我
the 1.x to 2.0 upgrade documentation
而不是使用以下方法
ForSqlServerToTable
,扩展方法
现在可以基于当前
modelBuilder.Entity<User>().ToTable(
Database.IsSqlServer() ? "SqlServerName" : "OtherName");