2013-09-02 5 views
2

데이터베이스 (SQL Server 2012)에 일부 데이터를 삽입하기 위해 Entity Framework를 사용하고 있습니다. 0 값을 float 필드에 삽입하면 데이터베이스에 null로 나타납니다.데이터베이스에 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이어야합니다.

아이디어가 있습니까?

+3

SQL 쿼리를 사용하여 데이터를 삽입하는 경우에도 이런 현상이 발생합니까? – ksalk

+4

이것은 이상하게 보입니다. 테이블에 어떤 종류의 방아쇠가있을 수 있습니까? –

+0

힌트 @DanielHilgarth를위한 Thx! 빈 문자열이 있으면 내 필드를 null로 설정하는 트리거가 있습니다. value_char = NULLIF (value_char, ''), value_num = NULLIF (value_num, ''), .... 0이 올 때 NULLIF (.., '')가 트리거됩니다.하지만 당연히 필요하지 않습니다. value_num 필드. – Patrick

답변

0

내가 틀릴 수도 있지만 이에 따라 발생해서는 안됩니다. null을 정의하고 '0'으로 변환하면이 반대 방향으로 갈 수 있습니다.

진술을 타는 것에 대한 규칙이 있는지 확인하십시오.

관련 문제