2016-09-26 1 views
1

J'ai plusieurs des méthodes suivantes dans ma classe pour l'accès aux données:Méthode avec une valeur de retour dynamique pour obtenir toutes les lignes d'une table spécifique

public IEnmuerable<Customer> GetAllCustomer() 
{ 
    return MyEFContext.tblCustomer; 
} 

public IEnmuerable<Company> GetAllCompanies() 
{ 
    return MyEFContext.tblCompany; 
} 

public IEnmuerable<Car> GetAllCars() 
{ 
    return MyEFContext.tblCar; 
} 

... 

Est-il possible de définir une méthode avec un retour dynamique valeur qui me donne toutes les lignes d'une table spécifique. Pour que je puisse appeler quelque chose comme ceci:

List<Customer> allCustomers = GetAll<Customer>().ToList(); 

J'ai beaucoup cherché mais je n'ai trouvé rien d'utile. Mon dernier code était, mais il échoue aussi:

public IEnumerable<T> GetAll<T>() 
{ 
    return MyEFContext.Set<T>(); 
} 

Répondre

1

Après moult essais et erreurs, voici ma solution:

public IEnumerable<T> GetAll<T>() 
{ 
    return MyEFContext.Set(typeof(T)) as IEnumerable<T>; 
} 

Maintenant, je peux appeler cette méthode comme:

List<Customer> allMyCustomers = GetAll<Customer>().ToList();