Generic Constraints and new()
Well GetStoredProcedureName is an instance property - you need an instance of the object to get the value of the property. The value belongs to an instance, not to the type. You either need to use static properties and lose the 
generics or introduce a configuration source that maps type to a configuration object.

I'd sugges that the object has no need to know what its stored procedures are called so the latter suggestion seems to be the way to go.

Create a configuration class:

public class DataConfiguration&lt;T&gt;
{
    public string GetStoredProcedureName { get; set; }
} 

public class DataConfigurationProvider
{
    public DataConfiguration&lt;T&gt; GetConfiguration&lt;T&gt;()
    {
        // some stuff.
    }
}


Then you can update your functions:

public RawDataAggregatedItems&lt;T&gt; GetRawDataAggregated&lt;T&gt;(int? id) where T : IRawDataAggregatedItem
{
    // _dataConfigurationProvider injected by constructor injection.
    var sprocName = _dataConfigurationProvider.GetConfiguration&lt;T&gt;().GetStoredProcedureName;
    try
    {
        using (var cn = Connection())
        {
            var cmd = new SqlCommand(sprocName, cn) { CommandTimeout = _commandTimeout, CommandType = CommandType.StoredProcedure };
            cmd.Parameters.Add(new SqlParameter("@periodId", SqlDbType.Int)).Value = id;
            return new RawDataAggregatedItems&lt;T&gt;(cmd.ExecuteReader());
        }
    }
    catch (Exception ex)
    {
        throw new Exception("Error fetching aggregated rawdata list.", ex);
    }
}


I've been a bit wooly on the specifics here but hopefully you can see yourself to a working solution!