2013-08-26 48 views
1

我正在使用實體框架。我需要使用主鍵找到記錄。如何在Entity Framework中使用主鍵查找數據?

我嘗試這樣。

tabCom com = db.tabCom.Find(3); 

,但有錯誤,它說

「System.Data.Objects.ObjectSet」不包含「查找」的定義,並沒有擴展方法「查找」接受的第一個參數類型「System.Data.Objects.ObjectSet」可以找到(是否缺少using指令或程序集引用?)

如何使用主鍵查找數據。我的代碼有什麼問題或者有其他方法嗎?

+0

[MSDN](http://msdn.microsoft.com/zh-cn/library/dd412719.aspx)鏈接 – Nilesh

回答

6
tabCom com = db.tabCom.Single(tab => tab.PrimaryKeyColumn == 3); 
1

Find方法在EF 4.1中引入。

在EF 5中,它具有優化功能,可在檢查數據庫之前檢查內存中的高速緩存。使用Single(entity => entity.PrimaryKey == id)不會提供相同的優化。

請檢查您的代碼所引用的EF版本。

+0

盡我所知,['Find'是'DbSet'的成員](http: //msdn.microsoft.com/en-us/library/gg696418(v=vs.103).aspx)。從OP:*錯誤...說'System.Data.Objects。** ObjectSet **'不包含'Find'* –

+0

@ ta.speot.is的定義,這意味着您不僅需要擔心哪些EF版本,而且如果它是DB優先或Code優先的,每個都有略微不同的特徵。 –

相關問題