使用依賴於舊版本實體的應用程序,並試圖將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