Is this you want?
var modelName = "JN_News";
var subModelName = "JN_NewsCategories";
var subModelField = "NewsCategoriesEn";
var splitSeacrh = "event";
Type modelClass = GetModel(modelName);
ParameterExpression peSubModel = Expression.Parameter(modelClass, "x");
Expression left = Expression.Property(peSubModel, modelClass.GetProperty(subModelName));
left = Expression.Field(left, modelClass.GetProperty(subModelName).PropertyType.GetField(subModelField));
Expression right = Expression.Constant(splitSeacrh, typeof(string));
MethodCallExpression conditionExpressionSubModel = Expression.Call(left,
typeof(string).GetMethod("Contains", new Type[] { typeof(string) }), right);
In my imagination,your models should look like this:
class JN_News
{
public Categories JN_NewsCategories { get; set; }
}
class Categories
{
public string NewsCategoriesEn = "eventForSomething";
}