我在Model-First模式(= EDMX)中使用System.Data.sqlite 1.0.90与VS2013和EntityFramework 5.
原文链接:https://www.f2er.com/sqlite/197741.htmlCREATE TABLE [..] [Test1integer] integer,[Test2int] int,[Test3smallint] smallint,[Test4tinyint] tinyint,[Test5bigint] bigint,[Test6money] money,[Test7float] float,[Test8real] real,[Test9decimal] decimal,[Test10numeric18_5] numeric(18,5),[..]
相关部分是Test7float和Test8real.
在从数据库…执行更新模型之后,EDMX现在包含:
SSDL:
<Property Name="Test1integer" Type="integer" /> <Property Name="Test2int" Type="int" /> <Property Name="Test3smallint" Type="smallint" /> <Property Name="Test4tinyint" Type="tinyint" /> <Property Name="Test5bigint" Type="integer" /> <Property Name="Test6money" Type="decimal" Precision="53" Scale="0" /> <Property Name="Test7float" Type="real" /> <Property Name="Test8real" Type="real" /> <Property Name="Test9decimal" Type="decimal" Precision="53" Scale="0" /> <Property Name="Test10numeric18_5" Type="decimal" Precision="18" Scale="5" />
相关部分是Test7float和Test8real.
CSDL:
<Property Name="Test1integer" Type="Int64" /> <Property Name="Test2int" Type="Int32" /> <Property Name="Test3smallint" Type="Int16" /> <Property Name="Test4tinyint" Type="Byte" /> <Property Name="Test5bigint" Type="Int64" /> <Property Name="Test6money" Type="Decimal" Precision="53" Scale="0" /> <Property Name="Test7float" Type="Single" /> <Property Name="Test8real" Type="Single" /> <Property Name="Test9decimal" Type="Decimal" Precision="53" Scale="0" /> <Property Name="Test10numeric18_5" Type="Decimal" Precision="18" Scale="5" />
相关部分是Test7float和Test8real.
问题
Test7float错误地变成了“真实的”“单一” – 设计师也不允许在这里“双”.
sqlite3文档(http://www.sqlite.org/datatype3.html)清楚地表示“真实”是一个8字节的IEEE浮点数,“浮点”只是“真实”的同义词 – 因此在每种情况下,“双”(8字节)应优先于“单”(4字节).
我做错事了还是我误会了什么?如果没有:出现什么问题,怎么解决?
我应该为此创建错误报告吗?