【问题标题】:How to query Entities in Entity Framework 4如何在 Entity Framework 4 中查询实体
【发布时间】:2010-05-15 01:30:05
【问题描述】:

在VS2008中,我认为是EF1.0,这样就可以了。

string queryString = @"SELECT VALUE USERS FROM ProjectDBEntities.Users AS User 
            INNER JOIN ProjectDBEntities.Favorites AS F ON F.FavUserId = User.UserId
            WHERE F.UserId = " + 3 + " ORDER BY F.CreateDate DESC ";

        System.Data.Objects.ObjectQuery<User> usersQuery =
                new System.Data.Objects.ObjectQuery<User>(queryString, context).Include("Detail");

        //int count = usersQuery.Count();
        foreach (User result in usersQuery)
            Console.WriteLine("User Name: {0}", result.UserName);

VS2010 EF4 中的相同代码在 foreach 循环中崩溃并出现以下错误:

查询的结果类型既不是EntityType也不是具有实体元素类型的CollectionType。只能为具有这些结果类型之一的查询指定包含路径。

【问题讨论】:

  • 您需要 ESQL 解决方案吗?这对于 L2E 来说是微不足道的。
  • Craig,L2E 会怎么做?
  • 根据我的帖子here,如果您已经在使用自定义Select,您似乎不需要指定Include。 (所以尝试删除包含)。

标签: entity-framework-4 objectquery


【解决方案1】:
var q = from u in ProjectDBEntities.Users
        from f in u.Favorites
        where f.User.Id == 3
        orderby f.CreateDate desc;

我正在对您的实体模型/属性名称做出一些假设,因为您没有显示它,但这应该会给您一个大致的想法。

【讨论】:

    猜你喜欢
    • 2011-04-05
    • 1970-01-01
    • 2021-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-19
    相关资源
    最近更新 更多