Good one!
You need to build dynamic expression. Something like this:
var parameter = Expression.Parameter(typeof(user), "p");
var property = Expression.Property(parameter, si);
var check = Expression.Call(property, typeof(String).GetMethod("Contains"), Expression.Constant(textBox7.Text));
var query = db.users;
var predicate = Expression.Lambda<Func<user, bool>>(check, parameter);
var result = query.Where(predicate);
To build a more complex query, use the approaches from here:
http://blog.micic.ch/net/entity-framework-and-expression-queries[
^]