Windows phone 7 Windows Phone-SqlCeException列类型双

Windows phone 7 Windows Phone-SqlCeException列类型双,windows-phone-7,sql-server-ce,windows-phone,windows-phone-8,Windows Phone 7,Sql Server Ce,Windows Phone,Windows Phone 8,我有一个基本实体和3个继承的子实体,分别称为NoteItem、ImageItem和MapItem。基本实体类用[InheritanceMapping]属性标记,并有一个鉴别器列。除了第三个MapItem实体外,其他一切都正常工作,它包含类型为double和bool的4列 例如,如果我插入一个NoteItem实体,它将抛出一个异常: SqlCeException-列间距不能包含空值 螺距为双柱式。只有使用CanBeNull=true加法扩展每个double和bool列的[Column]属性,它才能

我有一个基本实体和3个继承的子实体,分别称为NoteItem、ImageItem和MapItem。基本实体类用[InheritanceMapping]属性标记,并有一个鉴别器列。除了第三个MapItem实体外,其他一切都正常工作,它包含类型为double和bool的4列

例如,如果我插入一个NoteItem实体,它将抛出一个异常:

SqlCeException-列间距不能包含空值

螺距为双柱式。只有使用CanBeNull=true加法扩展每个double和bool列的[Column]属性,它才能工作

在我看来,double和bool值存在问题,因为字符串类型的列不能显式包含CanBeNull加法

这是一个已知的问题还是我错了

double和bool值有问题

恐怕这种行为是故意的

字符串类型的列不能显式包含CanBeNull加法

字符串CLR值可以为null,因此,如果未指定
[Column(CanBeNull=false)]
属性,实体框架将生成可以为null的列。OTOH、bool和double值不能为null,如果要允许为null,则必须指定
[列(CanBeNull=true)]


如果您不想用
[Column]
属性装饰double和bool属性/字段,您可以将它们分别定义为
double?
bool?

这正是我需要的!这个问号有问题吗?间接地将[Column]属性CanBeNull设置为true或它是如何工作的?问号将字段/属性类型从double更改为“double”,这是System.Nullable的缩写形式。。它将影响读取这些字段/属性值的代码。