实体框架默认值SYSDATETIMEOFFSET
问题描述:
在实体框架的表定义中跟踪实体并包括像CreatedAt这样的列时。实体框架默认值SYSDATETIMEOFFSET
如何将列默认设置为系统日期时间偏移量?从这个实体
EF附加迁移代码:
public class Entity
{
[Key]
public int Id { get; set; }
public DateTimeOffset CreatedAt { get; set; }
}
生成此C#:
CreateTable(
"dbo.Entity",
c => new
{
Id = c.Int(nullable: false),
CreatedAt = c.DateTimeOffset(nullable: false, precision: 7)
})
.PrimaryKey(t => t.Id)
.Index(t => t.Id);
产生这个SQL:
CREATE TABLE [dbo].[Entity] (
[Id] [int] NOT NULL IDENTITY,
[CreatedAt] [datetimeoffset](7) NOT NULL DEFAULT
CONSTRAINT [PK_dbo.Entity] PRIMARY KEY ([Id])
)
答
将生成的迁移C#更改为此,并且生成的SQL是正确的。
CreateTable(
"dbo.Entity",
c => new
{
Id = c.Int(nullable: false),
CreatedAt = c.DateTimeOffset(nullable: false, precision: 7, defaultValueSql: "SYSDATETIMEOFFSET()")
})
.PrimaryKey(t => t.Id)
.Index(t => t.Id);