Linq to Entities使用实现IQueryable的ObjectQuery。我通常使用IQueryable方法来过滤我的数据,但今天我需要创建一个特殊的LIKE语句。该框架一直在思考它的智能和“转义”我的通配符“%”与波形符,这使得我的特殊LIKE语句无效。因此,在挖掘之后,我发现ObjectQuery有一个Overfile,它允许你传递一个字符串和ObjectParameters。我已经完成了这个,但它没有像IQueryable那样执行。当我运行应用程序时,在此代码被命中后没有任何反应。没有错误,也没有数据库上的命中,所以我知道我创建的查询实际上并没有执行。
我该如何处理这只小狗?
public IQueryable<tbl_Path> GetPathsByWildCardSearch(string searchTerm)
{
return this.ObjectContext.tbl_Path
.Where("FullPath NOT LIKE @p0 and FullPath LIKE @p1",
new ObjectParameter("p0", string.Format("%{0}%{1}%", searchTerm, tbl_Path.PathSeperator)),
new ObjectParameter("p1", string.Format("%{0}%", searchTerm)));
}
;)终于看到它上面有一个Execute()方法。