我正在使用EF 4(数据库优先,完全由它生成的模型)和一个oracle 10g数据库,我有一个字段的问题.
我的字段NUMBER(5)在我的数据库中定义为a .在我的模型中,EF将其定义为short.我的问题是我有一些大于32,767(最大的短)的值我发现这篇文章:实体框架生成短而不是int.我按照指令运行,我的模型现在包含Int32值.
但我有一个新问题:
Error 2019: Member Mapping specified is not valid. The type 'Edm.Int32[Nullable=True,DefaultValue=]' of member 'XX' in type 'Model.XXX' is not compatible with 'OracleEFProvider.number[Nullable=True,DefaultValue=,Precision=5,Scale=0]' of member 'XX' in type 'Model.Store.XXX'.
Run Code Online (Sandbox Code Playgroud)
此错误始终显示在Visual Studio的"错误列表"选项卡中.然而,构建成功,它的一半工作:
是否有解决方案让它在两种方式都有效?
BTW,有没有办法告诉实体使用int32 for oracle INTEGER字段?它默认使用十进制.
编辑
在逐步调试的过程中,我找到了为什么我的值为-31073.我忘记了这句话:
dao.Value = (short)dto.Value;
Run Code Online (Sandbox Code Playgroud)
我的两个值是int,但简称隐式转换是原点.