我在使用dapper和oracle进行部分搜索时遇到了一些麻烦。
例如,我要搜索名称中包含phillip的所有名称。我这样做的方式只会发现名称是否完整,部分不会找到任何东西
public IEnumerable<User> FindByName(string name)
{
var cn = DbContext.Database.Connection;
IEnumerable<User> userList;
var sql = @"SELECT *FROM USER WHERE (:Name IS NULL OR USER.Name LIKE CONCAT(:Name, '%'))";
var multi = cn.QueryMultiple(sql, new { Name= name});
userList= multi.Read<User>().ToList();
return userList;
}
这就是答案,只需删除“ Tolist()”方法。
public IEnumerable<User> FindByName(string name)
{
var cn = DbContext.Database.Connection;
var sql = @"SELECT *FROM USER WHERE (:Name IS NULL OR USER.Name LIKE CONCAT(:Name, '%'))";
var multi = cn.QueryMultiple(sql, new { Name= name});
var userList= multi.Read<User>();
return userList;
}