2012-03-24 212 views
0

EF在数据库中默认情况下会使某些属性不可为空,是否有某种方法可以在某些属性中使用该属性?我试图搜索数据注释但什么也没找到。C#实体框架4.3

我使用的代码第一属性是一个int和日期时间

+2

你是先使用代码吗?该物业的类型是什么? – 2012-03-24 17:07:13

+1

请给我们一些代码。 – IAbstract 2012-03-24 17:08:38

+0

可能是一个重复的问题 - http://stackoverflow.com/questions/7941472/entity-framework-code-first-default-values-on-non-nullable-types – 2012-03-24 17:17:05

回答

4

我假设你正在使用代码优先。你可能会得到非空的对于确实是不可为空(值类型)的类型,如int,BOOL,等你需要在为了做到这一点使用这些可空版本:

int? MyColumnThatIsNullable 

int MyColumnThatIsNOTNullable 

想想代码将如何工作,这将是有意义的你。如果一个字段是一个int并且试图将一个null传递给代码,那么你将会有某种错误或者一个魔术(默认)值。这将不能正确表示数据库中的值。所以,如果你使用可空的版本,那么数据库中的null可以表示它的真实性,即null。

+0

哈!现在你提到它是非常有意义的,我不知道我是如何错过它的。谢谢 – Roge 2012-03-24 17:11:49

+1

@Roge没问题,我在原来的答案下面添加了一个解释(尽管你说你懂了:))。像往常一样接受的答案(一旦15分钟宽限期结束)和upvotes赞赏:) – 2012-03-24 17:16:27