2013-01-11 33 views
1

我有一个带有列ID,REGDATE和EVENT_NAME的简单表。我已将SYSDATE设置为REGDATE列的默认值。如果我从SQL Developer中直接插入记录,则当前日期写入REGDATE列。但是,如果我使用实体框架插入记录REGDATE列具有NULL。在使用Entity Framwork时不要使用数据库默认值?我需要做什么?使用实体框架时不写入默认值

+1

在Sql中,如果您未在插入语句中指定列,则只会将您的默认值插入到REGDATE列中。如果您查看EF在插入值时生成的查询,则可能指定将null插入到列中,这就是为什么您没有获得默认值。从我读到的,EF不支持SQL默认值。 IronMan的解决方案是我见过的最清洁的解决方案。 –

回答

2

你可以做到这一点的一种方法是,当你实例化一个新类型的对象时,在你的类中有一个构造函数来自动设置该默认值。这与Ladislav对this SO question的回答类似。

1

你可以设置该属性,StoreGeneratedpatternComputed然后EF不会更新它,但是你也不能。此方法将解决您列中的Db默认值。

+0

这并不能真正解决OP的所有问题,然后...... – IronMan84

+0

OP从未说过他想通过EF维持该值。所以我明确表示使用这种方法有其不足之处。 –

+0

您提出的建议确实会做我所需要的,因为我需要写入的默认值永远不会再被更改。但是我仍然看不到写入列的默认值。 –