2011-03-04 118 views
2

也許我有點過度工作......我迷失在一個項目中,我使用EF4的數據庫的東西。實體框架4.0不會讓我使用LINQ到實體

因此,它確實很好地檢索實體的完整列表。 但是,當我嘗試做一些過濾,我不明白這一點...

我有下面的代碼,在那裏我遇到了大麻煩得到

public class InfoViewModel 
{ 
    private TrackerEntities _context; 

    public InfoViewModel (int ticketID) 
    { 
     var ct = new TrackerEntities(); 
     var res = from t in ct.Tickets 
        where t.TicketID // VS2010 can't evaluate the property 'TicketID' 
        select t; 
} 
} 

我不明白爲什麼t.TicketID投我以錯誤消息波浪紅線 「無法解析符號‘TicketID’」

符號在EDMX文件中聲明,公共getter和setter ...

事實上,它看起來就像實體沒有k是一樣在我的班級中。

爲什麼?

TIA DeepCore

+1

它是編譯還是你在編譯時得到相同的錯誤? – Andrew 2011-03-04 14:24:03

+0

不,它不編譯...它會拋出以下錯誤消息: 無法將lambda表達式轉換爲鍵入'string',因爲它不是委託類型 – DeepCore 2011-03-04 14:43:38

回答

0

Doh ...

我感覺真的很笨...我發現我的錯誤!

不知何故以下using語句失蹤:O(

using System.Linq 

我想,我要問的一些度假

感謝大家投資你的時間來幫助我

DeepCore

4

1),你應該與所需的匹配比較TicketID實體,以及(推薦),你應該在包裝上下文實例using statement(這是IDisposable):

private TrackerEntities _context;

public InfoViewModel(int ticketID)
{
var ct = new TrackerEntities();
var res = from t in ct.Tickets
where
t.TicketID == ticketID
select t;
}

2)嘗試刷新模型;轉到EDM設計器,右鍵單擊曲面並選擇「從數據庫更新模型」,可能在模式中存在錯誤。

3)確保TicketID屬性與EDM中的拼寫和套管屬性相同。

4)確保TicketIDint其與另一個INT如上面的更新代碼段。

+0

感謝您使用指向IDisposable的指針! 刷新模型並沒有幫助。 我也重新檢查拼寫和外殼...它們與EDM中的相同。 – DeepCore 2011-03-04 14:53:12

+0

@DeepCore:我已經更新了我的答案。 – Shimmy 2011-03-05 19:19:43