LINQ-Wählen Sie aus dynamischen tableName, string
Möchte ich, um die Liste der Datensätze, die von einer Entität-Modell (ich bin mit EF, version 5) mit einem insbesondere accountID. Ich bin versorgt mit dem tableName string (dynamisch) und die accountID. Ich versuche die folgenden 2 Methoden, aber keiner von Ihnen arbeitet (mir Fehler auf die IQueryable-Objekt 'table':
PropertyInfo info = _db.GetType().GetProperty(tableName);
IQueryable table = info.GetValue(_db, null) as IQueryable;
var query = table.Where(t => t.AccountID == accID)
.Select(t => t);
List <object> recList = ( from records in table
where records.AccountID == accID
select records).ToList<object>();
Können Sie zeigen, was der Fehler ist ?
InformationsquelleAutor Chris Attard | 2014-09-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
var query = table.Where(....).Select(...)
richtig bewegen, und das ermöglicht die Reflexion, wie query builder-Laufzeit.Jedoch
t.AccountID
ist ein Fehler wegen der Art dert
unbekannt bleiben.Ich getan habe, vor vielen Jahren in ähnlicher Weise mit System.Linq -.Ausdrücke.Ausdruck direkt in Linq2Sql.
z.B.
Ich erinnere mich, dass, sollte ein einfacher syntax, wenn Sie Einwände hat, common interface
Oder, wenn Sie nur ein paar Tisch-zu unterstützen.
InformationsquelleAutor Dennis C
Baute ich eine DynamicRepository für ein Projekt an dem ich arbeite. Es verwendet generische Methoden, die durch das EF-zusammen mit dynamic linq. Es könnte hilfreich sein, zu sehen, dass die source-code hier:
https://dynamicmvc.codeplex.com/SourceControl/latest#DynamicMVC/DynamicMVC/Data/DynamicRepository.cs
Können Sie die Abfrage der entity framework Metadaten-Arbeitsbereich, um den Typ einer Tabelle Namen. Dieser link könnte helfen:
Holen Sie Tabellen und Beziehungen
InformationsquelleAutor Chris Perry