【发布时间】:2013-09-02 09:21:57
【问题描述】:
我正在使用实体框架将一些数据插入我的数据库(sql server 2012)。 将 0 值插入到浮点字段后,它在数据库中显示为 null。
using (var db = new myDB()) {
Part_Properties pp = new Part_Properties {
part_id = 7007,
properties_id = 31,
value_num = 0
};
db.Part_Properties.AddObject(pp);
db.SaveChanges();
}
根据分析器,正在发送:
exec sp_executesql N'insert [dbo].[Part_Properties]([part_id], [properties_id], [value_num], [value_char], [info])
values (@0, @1, @2, null, null)
',N'@0 int,@1 int,@2 float',@0=7007,@1=31,@2=0
DB 中的结果是这样的: part_id = 7007,properties_id = 31,value_num = null
但我需要这个值为 0。
有什么想法吗?
【问题讨论】:
-
如果使用SQL查询插入数据,是否也会出现这种情况?
-
这看起来很奇怪。也许您的桌面上有某种触发器?
-
感谢@DanielHilgarth 的提示!如果有一个空字符串,我有一个触发器将我的字段设置为 null。 value_char = NULLIF(value_char, ''), value_num = NULLIF(value_num, ''), .... 似乎 NULLIF(..,'') 在出现 0 时触发。但当然我的 value_num 不需要它字段。
-
CAST('' AS INT)返回0这就是发生这种情况的原因。
标签: sql entity-framework-4 sql-server-2012