2017-02-05 58 views
0

我正在使用C#和實體框架與SQL Server 2014創建一個簡單的自己的項目。當lambda返回對象時TargetInvocationException

我有一個名爲「UserDomain」(是實體中的表)的模型類。

我可以使LINQ完全返回一個IQueryable:

(from user in Context.Users select user); 

但是,當我調用返回用戶網域的異常發生時,例如一方法:

(from user in Context.Users select user).ToList(); 

FirstOrDefault(); 

奇怪的是Count()返回1,表示不爲null,有au ser在基地叫jfrode。如果我在代碼中使用users.Any (x => x.Login ==" jfrode "),它將返回true。

堆棧跟蹤https://gist.github.com/anonymous/4daf1ac3ce6536b262a69785577c6dfe

GitHub的項目https://github.com/JFRode/FrenteDeCaixa

謝謝!

+0

可能返回Count = 1,但它仍然可以是空值。檢查一個斷點! – Madenis

+0

基地中有一個用戶叫做jfrode。如果我在代碼中使用'users.Any(x => x.Login ==「jfrode」)',它將返回true。 –

+0

用戶(包括jfrode)和Context.Users之間有什麼不同? – KernelMode

回答

0

問題已解決。

發生錯誤是因爲在我的域/模型中我沒有一個沒有參數的構造函數。

我使用多參數構造函數,因爲我在Builder中使用它。 但我需要聲明一個空的構造函數。

謝謝大家!