我有一个具有DateTime? CreatedDate { get; set; }
属性的类MyEntity
。
所以我创建了我的实体:
MyEntity e = new MyEntity { Id = 0, ..., CreatedDate = DateTime.Now };
db.MyEntities.Add(e);
db.SaveChanges();
我在数据库中查看,CreatedDate字段为空。为什么?我在添加到上下文之前就指定了它!
尝试了其他人关于设置CreatedDate = DateTime.Now as DateTime?
的建议;甚至CreatedDate = DateTime.Now as Nullable<DateTime>;
相同的结果-插入为空。
问题可能是在代码的第一行中,您声明的是Entity类型的新类而不是MyEntity吗?
尝试。。
MyEntity e = new MyEntity { Id = 0, ..., CreatedDate = DateTime.Now };
db.MyEntities.Add(e);
db.SaveChanges();
CreatedDate = DateTime.Now.Date
将createddate设置为日期
我之前没有告诉你们,但我已经装饰了DateTime?使用[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
创建日期,我认为这不会影响创建或更新。
如果我有这个属性,那么在C#中设置CreateDate
的任何操作都将导致null。为了解决null问题,我必须转到Configuration.cs和write c => c.DateTime(defaultSqlValue: "GETDATE()")
以获得相应的列定义。解决了这个问题。
或者,我可以去掉注释,不接触Configuration.cs文件。
在实体实例创建后设置断点并检查属性。CreatedDate设置正确吗?