使用依赖于旧版本实体的应用程序,并试图将NULL
插入到int
字段中。 SQL Server中的字段是(int, null)
。使用VB.Net和EF5插入NULL整数
下面是EF的对象的定义:
<EdmScalarPropertyAttribute(EntityKeyProperty:=false, IsNullable:=true)>
<DataMemberAttribute()>
Public Property application_id() As Nullable(Of Global.System.Int32)
...这里就是我试图将其设置:
applications.application_id = IIf(IsNumeric(txtAppID.Text), CInt(txtAppID.Text), Nothing)
响应抛出的错误是:
在...中发生类型'System.InvalidCastException'的异常,但未在用户代码中处理
附加信息:指定的转换无效。
我可以证实,这个问题被抛出由于Nothing
部分,因为以前是applications.application_id = CInt(txtAppID.Text)
和所有被罚款。
我试过DBNull.Value
而不是Nothing
,虽然错误是相同的。尽管大多数问题都涉及到ES6或datetime
领域,但仍然进行了相当一部分的研究,因此我觉得我的问题具体到足以证明自己的问题。
谢谢。
更改代码,以便您只在记录中添加一个值,如果它是数字,即:'If IsNumeric(txtAppID.Text)Then applications.application_id = CInt(txtAppID.Text)' –
@LaughingVergil我应该提到这也用于更新。使用该方法将意味着使用无法*删除*应用程序ID,因为如果它们消除了字段并更新,'applications.application_id'将不会被设置。 – Santi