Если PersistentAttributeInfo известен только во время выполнения, вы, очевидно, не можете написать лямбду статически, и компилятор сделает всю тяжелую работу за вас.Вам нужно будет создать новый с нуля:
Type persistentAttributeInfoType = [TypeYouKnowAtRuntime];
ParameterExpression parameter = Expression.Parameter(persistentAttributeInfoType, "info");
LambdaExpression lambda = Expression.Lambda(
typeof(Func<,>).MakeGenericType(persistentAttributeInfoType, typeof(bool)),
Expression.Equal(Expression.Property(parameter, "Owner"), Expression.Constant(null)),
parameter);
Вы можете вызвать lambda.Compile (), чтобы вернуть Delegate, который аналогичен преобразованному лямбда-выражению в вашем примере (хотя, конечно, нетипизировано).