2013-12-24 68 views
0

我正在將此LINQ寫入EF查詢以獲取匹配項目。選擇LINQ錯誤

if (user.UserID > 0) 
{ 
    var TempUser = (from c in GSData.tblUsers 
        where c.UserID == user.UserID 
        select c).First(); 
        .......... 

user.UserID在運行時的值爲579,並且存在匹配的行。但是我得到錯誤

{"This property cannot be set to a null value."} 
System.Data.ConstraintException was unhandled by user code 

此外,它在中間名稱設置的位置出人意料地中斷。它恰好是tblUsers數據庫中具有nvarchar(20)的字段,值爲空。

_MiddleName = StructuralObject.SetValidValue(value, false); 

但是我寫了類似的查詢獲取匹配的項目,他們工作正常。我只是選擇並不更新任何值。所以我一直在爲了這件事發生的事情而打破我的頭。歡迎任何建議。

+0

其中是user.UserId? – Amit

+0

用戶對象被傳遞給具有該查詢的函數。用戶標識是用戶對象中的字段 – simba

+0

如果您在選擇時看到該字段,則表示您的EF和數據庫約束不同步。 – Carth

回答

1

刪除實體模型中的表格,然後選擇從數據庫中更新。 EF不會通過更新已經存在的表來選擇可以爲空或不可爲空的更改。

+0

解決了這個問題。謝謝! – simba