2011-04-30 42 views
4

從零開始創建實體模型時出現問題。我成功地設計了我的對象並生成了數據庫創建。但是,當我嘗試做一個LINQ要求如Linq to entities不能識別我的實體類型

var t = from e in entity.UsersSet 
     where e.Id == 1 
     select e; 

好像而我UsersSet屬性爲對象集類型的我的「e」變量不被識別爲一個用戶對象。 如果我停下我的表情在「e.Id」打字,我從VS一個警告,告訴我:

參數類型的lambda表達式'是不能分配給參數類型「字符串」

我真的不明白爲什麼它給了我這個錯誤。我檢查了另一個項目,它工作正常。也許我想念一個參考或其他東西......任何想法?

+0

您是否嘗試過另一個變量名稱。 – 2011-04-30 20:58:22

+0

如何聲明UsersSet? 「Id」如何聲明? – 2011-04-30 21:00:19

+0

全部由實體引擎生成。我只是設計了集成在Visual Studio中的設計器的類。是的,我嘗試了另一個名稱它似乎並沒有改變任何東西 – Paul 2011-04-30 21:39:53

回答

2

如果你一定UsersSet某種User實例的集合,那麼你可以嘗試

var t = from User e in entity.UsersSet 
     where e.Id == 1 
     select e; 
+0

問題被標記爲linq的實體 - 如果UsersSet確實是一個實體,你的答案不會改變任何東西,因爲它已經被強類型化了,即使你嘗試投射 - 總之:我不知道這將如何幫助。 – BrokenGlass 2011-04-30 21:21:11

+0

@BrokenGlass如果用戶設置它是一個非泛型集合,e將是類型對象,並且必須明確聲明其中元素的類型。 – 2011-04-30 21:23:07

+0

哇...問題解決了。而且它太愚蠢了......實際上我錯過了一個使用VS的System.Linq沒有提醒我。當我試圖強調輸入參考時,我有一個幸運的發現問題。所以我標記你接受的答案,因爲它幫助我! – Paul 2011-04-30 21:45:46

4

這是晚了一點,但我只是用Google搜索這個確切的問題(並在這裏結束)。

我發現上面的解決方案確實修復了它,但是它也可以通過添加「using System.Linq;」來解決。到頂部解決了這個問題。

相關問題