Busco un equivalente de la DataContext.GetTable<TEntity>
en Entity Framework. He encontrado el método ObjectContext.CreateQuery<T>
pero es diferente de DataContext.GetTable<TEntity>
ya que necesita una cadena de consulta para funcionar.¿Tiene el marco de la entidad tiene un equivalente de DataContext.GetTable <TEntity> de Linq2Sql (ObjectContext.CreateQuery <T>?)
¿Hay alguna forma de obtener un objeto IQueryable para una tabla utilizando el tipo de entidad sin especificar la cadena de consulta?
*EDIT: Added code snippet*
Este es un fragmento de una clase repositorio he aplicado que trabaja con linq2sql. No puedo usar ObjectContext.[TableName]
porque ya no sería genérico.
public class BaseRepository<TClass> : IDisposable
where TClass : class
{
protected BaseRepository(DataContext database)
{
_database = database;
}
...
public IQueryable<TClass> GetAllEntities()
{
IQueryable<TClass> entities = _database.GetTable<TClass>();
return entities;
}
public IQueryable<TClass> GetEntities(Expression<Func<TClass, bool>> condition)
{
IQueryable<TClass> table = _database.GetTable<TClass>();
return table.Where(condition);
}
*EDIT: Added my solution (so far..)*
Esto es lo que estoy usando:
public IQueryable<TClass> GetEntities(Expression<Func<TClass, bool>> condition)
{
IQueryable<TClass> table = _database.CreateQuery<TClass>(typeof(TClass).Name);
return table.Where(condition);
}
Esto funciona siempre y cuando el nombre de la clase es el mismo del nombre de la tabla. Esto se convertirá en un problema para mí cuando empiece a usar diferentes objetos para la misma tabla.
espero haber sido claro, gracias de antemano,
Marco :)
Marco B, ¿ha encontrado una solución? Tengo el mismo problema e incluso pasar "[EntitySet]" como parámetro a CreateQuery no puedo hacer que funcione. –
Encontré esta respuesta primero, y [esta respuesta] (http://stackoverflow.com/questions/7263083/gettable-equivalent-for-objectcontext) después de eso. Parece que la segunda respuesta tiene una forma mucho más fácil de hacer esto que se asemeja a 'GetTable' de Linq2SQL –