2012-01-30 38 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();