LINQ to Entities:无法将Lambda表达式转换为“string”类型

时间:2011-07-13 19:47:16

标签: linq entity-framework include

Include语句中的我的lambda表达式正在收到我在此帖子标题中包含的错误。我班上有一个'using.System.Linq'。这是怎么回事? 〜苏珊〜

FVTCEntities db = new FVTCEntities();

public List<RESTAURANT> getRestaurants(string cuisineName)
{
    var cuisineID = db.CUISINEs.First(s => s.CUISINE_NAME == cuisineName).CUISINE_ID;

    List<RESTAURANT> result = (from RESTAURANT in db.RESTAURANTs.Include(x => x.CITY).Include(x => x.CUISINE) 
                               where RESTAURANT.CUISINE_ID == cuisineID 
                               select RESTAURANT).ToList();

     return result;
}

4 个答案:

答案 0 :(得分:4)

您是否在EF4.1中使用DBContext,基于ET团队的the blog post,Include是System.Data.Entity命名空间中的扩展方法,因此请确保您使用的是该命名空间。

答案 1 :(得分:0)

INCLUDE将字符串作为参数。尝试 .INCLUDE( “城市”)

答案 2 :(得分:0)

http://blogs.msdn.com/b/alexj/archive/2009/06/02/tip-22-how-to-make-include-really-include.aspx

我对.Include()没有太多经验,但这似乎有道理。

也许。包括(“CITY”)。包括(“CUISINE”)

答案 3 :(得分:0)

在EF中,Include()方法接受一个字符串作为参数。如果您希望它接受Lambda表达式,您应该阅读以下帖子:http://tomlev2.wordpress.com/2010/10/03/entity-framework-using-include-with-lambda-expressions/