Getting names/values of multiple properties
If you want to iterate through all of the properties then reflection will help you to do that. You can find more at MS docs
Something like this:

public TModel Get&lt;TParam&gt;(TParam param)
{
        var allParams = typeof(TParam).GetProperties().Select(p =&gt; $"{p.Name} ='{p.GetValue(param)}'");
        var condition = string.Join(" AND ", allParams);

        using (OracleConnection connection = new OracleConnection(GetConnectionString()))
        {
            connection.Open();

            // GetTableName() returns table name of TModel
            var query = $"SELECT * FROM {GetTableName()} WHERE {condition}";

            var output = connection.Query&lt;TModel&gt;(query);
            return output.FirstOrDefault();
        }
}


But you have to think how to escape SQL injections. Because the value of query variable in current implementation could have potential vulnerabilities.