У меня есть общий репозиторий для моего EF.Работает отлично.Но сегодня я обнаружил, что мне нужно получить результат, который не является точным соответствием, вместо этого он должен быть похож на «LIKE» SQL, где он получает все, что имеет соответствующий суффикс или префикс столбца.Прямо сейчас то, что он делает, является оператором равенства.Как я могу настроить этот код, чтобы он вел себя как LIKE вместо равных?
public IList<TEntity> SelectManyByColumnKeywordLike(string Key, string columnName)
{
// First we define the parameter that we are going to use the clause.
var xParam = Expression.Parameter(typeof(TEntity), typeof(TEntity).Name);
MemberExpression leftExpr = MemberExpression.Property(xParam, columnName);
Expression rightExpr = Expression.Constant(Key);
BinaryExpression binaryExpr = MemberExpression.Equal(leftExpr, rightExpr);
//Create Lambda Expression for the selection
Expression<Func<TEntity, bool>> lambdaExpr =
Expression.Lambda<Func<TEntity, bool>>(binaryExpr,
new ParameterExpression[] { xParam, });
//Searching ....
IList<TEntity> resultCollection = ((IADRRepository<TEntity, TContext>)this).SelectAll
(new Specification<TEntity>(lambdaExpr));
if (null != resultCollection && resultCollection.Count() > 0)
{
//return valid single result
return resultCollection;
}//end if
return null;
}