Retorne o Objeto Personalizado <Lista T> da estrutura da Entidade e atribua à Fonte de Dados do Objeto

Eu preciso de alguma orientação sobre um problema, estou usando o Entity Framework 4.0, tenho um DAL e BLL e estou vinculando ao ObjectDataSource na págin

Eu tive que escrever um procedimento armazenado usandoPIVOT e SQL dinâmico para retornar os dados de várias entidades da maneira que eu quero. Agora estou tentando descobrir como obter o Entity Framework para retornar um objeto personalizado que eu possa vincular ao meuObjectDataSource na página, PRECISO usar um objeto personalizado ou um objeto dinâmico, pois o procedimento armazenado pode retornar qualquer número de colunas; portanto, não posso usar uma classe ou entidade fortemente tipada e também preciso vincular isso a umObjectDataSource.

Alguém pode apontar uma boa maneira de fazer isso e como definir minha função? Com alguns exemplos de código, por favor.

Eu li que eu deveria tentar usarList<T> por retornar um objeto, já que o EF não suporta tabelas / dados de retorno, tenho o seguinte até agora, mas sei que isso não está corret

Não trabalhei muito com genéricos, se você puder indicar como fazer isso, tenho certeza de que isso seria útil para muitas pessoas. Forneça exemplos de código para a função e como vincularObjectDataSource para o objeto de retorno?

Sua ajuda é muito apreciada!

Obrigado pela sua ajuda, Richard. É assim que minha função se parece agora, com base na sua sugestão para usar o DbDataRecord

Função C # paraObjectDataSource em DAL

public List<DbDataRecord> GetData(int product_id)
{
    List<DbDataRecord> availableProducts = new List<DbDataRecord>();

    var groupData = context.ExecuteStoreQuery<DbDataRecord>("exec 
  spGetProducts @ProductID={0}", product_id);

    availableProducts = groupData.ToList<DbDataRecord>();

    return availableProducts;
}

ObjectDataSource na página ASPX

<asp:ObjectDataSource ID="ODSProductAvailability" runat="server"
        TypeName="Project.BLL.ProductBL" 
        SelectMethod="GetData"  >
     <SelectParameters>
        <asp:SessionParameter Name="product_id" SessionField="ProductID" />
     </SelectParameters>
</asp:ObjectDataSource>

gora, estou recebendo esse erro ao acessar a página:

O tipo de resultado 'System.Data.Common.DbDataRecord' pode não ser abstrato e deve incluir um construtor padrão

Isso é porque oExecuteStoreQuery espera ser definida como classe ou entidade? Como posso criar um objeto com base nos resultados do procedimento armazenado e atribuir isso a el

questionAnswers(3)

yourAnswerToTheQuestion