在实体框架中搜索

Posted

技术标签:

【中文标题】在实体框架中搜索【英文标题】:Search in Entity Framework 【发布时间】:2012-11-20 23:16:03 【问题描述】:

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

   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));
            
        ;
    

编译错误: 无法从用法中推断方法“System.Data.Objects.ObjectContext.CreateObjectSet()”的类型参数。尝试明确指定类型参数。

【问题讨论】:

【参考方案1】:

假设T是一个实体类型,你需要:

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

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

【讨论】:

以上是关于在实体框架中搜索的主要内容,如果未能解决你的问题,请参考以下文章

改善使用实体框架时的搜索功能延迟

首先在实体框架代码中使用搜索字符串搜索 DateTime

在 sql server json 列中搜索并使用实体框架核心使用它

如何使用实体框架进行连接表搜索?

实体框架、代码优先和全文搜索

实体框架代码优先和搜索标准