Ich bin auf der Suche nach einem Äquivalent der DataContext.GetTable<TEntity>
in Entity Framework. Ich habe die ObjectContext.CreateQuery<T>
Methode gefunden, aber es unterscheidet sich von DataContext.GetTable<TEntity>
, da es eine Querystring benötigt, um zu arbeiten.Hat das Entity Framework ein Äquivalent von DataContext.GetTable <TEntity> von Linq2Sql (ObjectContext.CreateQuery <T>?)
Gibt es eine Möglichkeit, ein IQueryable-Objekt für eine Tabelle mit dem Entitätstyp ohne Angabe der Querystring zu erhalten?
*EDIT: Added code snippet*
Dies ist ein Ausschnitt einer Repository-Klasse, die ich implementiert habe, die mit linq2sql funktioniert. Ich kann ObjectContext.[TableName]
nicht verwenden, weil es nicht mehr generisch wäre.
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..)*
Dies ist, was ich verwende:
public IQueryable<TClass> GetEntities(Expression<Func<TClass, bool>> condition)
{
IQueryable<TClass> table = _database.CreateQuery<TClass>(typeof(TClass).Name);
return table.Where(condition);
}
Das funktioniert, solange der Klassenname mit dem der Tabellenname ist. Dies wird ein Problem für mich, wenn ich anfangen werde, verschiedene Objekte für die gleiche Tabelle zu verwenden.
Ich hoffe, ich habe klar gewesen, danke im voraus,
Marco :)
Marco B haben Sie eine Lösung gefunden? Ich habe das gleiche Problem und übergebe sogar "[EntitySet]" als Parameter an CreateQuery Ich kann es nicht funktionieren. –
Ich fand diese Antwort zuerst und [diese Antwort] (http://StackOverflow.com/questions/7263083/gettable-equivalent-for- objectcontext) danach. Es scheint, dass die zweite Antwort eine viel einfachere Möglichkeit hat, dies zu tun, die GetTable von Linq2SQL –