我的用户类中有一个属性creationdate
,并带有数据注释
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
我告诉EF,数据库在插入时自己生成了这个属性。
问题在于,当我创建迁移时,我必须手动编辑迁移文件,以告知创建的数据库该数据库需要生成此列,如下所示:
CreateTable(
"dbo.Comments",
c => new
{
CommentId = c.Int(nullable: false, identity: true),
PostDate = c.DateTime(defaultValueSql: "GETDATE()"),
Title = c.String(),
Content = c.String(),
IsApproved = c.Boolean(nullable: false),
User_UserId = c.Int(),
Event_EventId = c.Int(),
Subject_SubjectId = c.Int(),
})
.PrimaryKey(t => t.CommentId)
.ForeignKey("dbo.Users", t => t.User_UserId)
.ForeignKey("dbo.Events", t => t.Event_EventId)
.ForeignKey("dbo.Subjects", t => t.Subject_SubjectId)
.Index(t => t.User_UserId)
.Index(t => t.Event_EventId)
.Index(t => t.Subject_SubjectId);
我必须添加
defaultValueSql: "GETDATE()"
手动..我预计EF6足够聪明,可以通过检查属性类型自行生成。
问题:有没有相对简单的方法来解决这个问题,或者我做错了什么?