2012-01-30 32 views
1

我在實體框架中編寫此代碼。據我瞭解,通常情況下,你不直接從SQL使用實體框架查詢,但對我的生活,我不明白爲什麼這個代碼不工作爲什麼這個SQL查詢不能與.net Entity Framwork一起使用?

ucvDotNet.Models.CdaSql entities = new Models.CdaSql(); 
object X = entities.CreateQuery<Lids>("select * from lids").First(); 

我得到一個錯誤,指出消息*是無效的語法。我究竟做錯了什麼?

回答

3

實體框架不使用常規SQL,它使用Entity SQL,它沒有SELECT * FROM語法。

+2

+1雖然我這個鏈接可能更重要的一點:http://msdn.microsoft.com/en-us/library/bb738573.aspx – 2012-01-30 21:06:46

0

可以使用常規的SQL與ExecuteStoreQuery()代替:

var item = entities.ExecuteStoreQuery<Lids>("select * from lids") 
        .First(); 

由於從ExecuteStoreQuery()一切都物化了一堆的Lids對象上面應該被改寫爲:

var item = entities.ExecuteStoreQuery<Lids>("select top 1 * from lids") 
        .First(); 
相關問題