LINQ: Generics with IQueryable

Мне нужно добавить несколько поисковых запросов в мое приложение C # .NET. По сути, будет много таблиц, все они имеют одинаковую схему, но содержат разные значения.

Мне приходится писать один и тот же код снова и снова (это должен быть объектно-ориентированный способ…)

[изменить - ниже изменено, чтобы показать более полную информацию] В любом случае, я хотел бы сделать следующее:

public List<GenericLookupE>         GetLookupItems( string what )
{
    // create db thing
    if ( "regions" == what )  return FetchLookup( db.lkRegions.AsQueryable() );
    if ( "partners" == what ) return FetchLookup( db.lkPartners.AsQueryable() );
    if ( "funders" == what )  return FetchLookup( db.lkFunders.AsQueryable() );

    return null; // or something more intelligent than that =)
}


private List<GenericLookupE>        FetchLookup<T>( IQueryable<T> lookup )
{
    return lookup.OrderBy( p => p.Sequence ).Select
    (   p => new GenericLookupE()
        {
            ID      = p.ID
            ,Label      = p.Label
            ,StateCode  = p.StateCode
            ,Sequence   = p.Sequence
        }
    ).ToList();
}

конечно, проблема в том, что компилятор не знает, что такое 'p => p.Sequence'. Есть идеи?

Всем спасибо.

5
задан horace 15 December 2011 в 17:45
поделиться