在实体框架中搜索

时间:2012-11-20 23:16:03

标签: c# entity-framework-4.1

我正在尝试让这段代码正常工作,但由于某些原因我收到了编译错误

   private IQueryable<T> FindObjects(Expression<Func<T, bool>> predicate, T item)
    {
        using (MainEntities mainEntities = new MainEntities())
        {
            try
            {
                return mainEntities.CreateObjectSet().Where(predicate);
            }
            catch (Exception exp)
            {
                throw new Exception(ErrorHelper.GenerateExceptionMessage(exp));
            }
        };
    }

Complile错误: 无法从用法推断出方法'System.Data.Objects.ObjectContext.CreateObjectSet()'的类型参数。尝试显式指定类型参数。

1 个答案:

答案 0 :(得分:0)

假设T是实体类型,您需要:

return mainEntities.CreateObjectSet<T>().Where(predicate);

(顺便说一下:重新抛出一个新的异常会掩盖调用代码的原始异常。至少使它成为新异常的InnerException。)