EFCore.Sharding
EFCore.Sharding copied to clipboard
ef core CodeFirst迁移的bug?
按日期分表,postgresql数据库环境下测试: model定义:
[Table("ParkCash")]
//[Table("parkcash")]
public class ParkCash
{
[Key]
[Column("id")]
public long Id { get; set; }
[Column("body")]
public JsonDocument Body { get; set; }
[Column("created_on")]
public DateTime CreatedOn { get; set; } = DateTime.Now.ToLocalTime();
//public int? Test { get; set; }
}
一、如果表名使用驼峰命名(区分大小写),使用ef工具迁移能生成正确的表;启动程序使用EFCoreSharding自动维护表,生成的sql出现重复时间字段: ef工具执行迁移命令:
dotnet ef database update
生成的sql里表名出现日期多次出现的情况:
CREATE TABLE "ParkCash_202102251710_202102251712" (
id bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
body jsonb NULL,
created_on timestamp without time zone NOT NULL,
CONSTRAINT "PK_ParkCash_202102251710_202102251712" PRIMARY KEY (id)
);
二、如果表名使用全小写,不管是否使用ef工具迁移或者EFCoreSharding自动维护表,表名均有重复的时间问题:
[Table("parkcash")]