Heim >Datenbank >MySQL-Tutorial >Wie extrahiere ich anonyme Typergebnisse aus SQL-Abfragen mit Entity Framework?
Anonyme Typergebnisextraktion aus SQL-Abfragen in Entity Framework
In Entity Framework ist die SqlQuery
Um diese Einschränkung zu überwinden und anonyme Typergebnisse zu erhalten, besteht die Lösung darin, Roh-SQL direkt zu nutzen. Mit der bereitgestellten Methode DynamicListFromSql können Entwickler diese Funktionalität erreichen.
public static IEnumerable<dynamic> DynamicListFromSql(this DbContext db, string Sql, Dictionary<string, object> Params) { using (var cmd = db.Database.Connection.CreateCommand()) { cmd.CommandText = Sql; if (cmd.Connection.State != ConnectionState.Open) { cmd.Connection.Open(); } foreach (KeyValuePair<string, object> p in Params) { DbParameter dbParameter = cmd.CreateParameter(); dbParameter.ParameterName = p.Key; dbParameter.Value = p.Value; cmd.Parameters.Add(dbParameter); } using (var dataReader = cmd.ExecuteReader()) { while (dataReader.Read()) { var row = new ExpandoObject() as IDictionary<string, object>; for (var fieldCount = 0; fieldCount < dataReader.FieldCount; fieldCount++) { row.Add(dataReader.GetName(fieldCount), dataReader[fieldCount]); } yield return row; } } } }
Mit dieser Methode können Entwickler SQL-Abfragen ausführen und Ergebnisse in Form von dynamischen Objekten abrufen, die als Schlüssel-Wert-Paare innerhalb eines gespeichert werden ExpandoObject-Instanz.
Um diese Methode in Ihrem eigenen Code zu verwenden, rufen Sie sie einfach wie folgt auf:
List<dynamic> results = DynamicListFromSql(myDb,"select * from table where a=@a and b=@b", new Dictionary<string, object> { { "a", true }, { "b", false } }).ToList();
Indem Sie dies verwenden Mit diesem Ansatz können Entwickler problemlos anonyme Typergebnisse aus SQL-Abfragen erhalten, was das Abrufen bestimmter Spalten oder die Erstellung benutzerdefinierter Datenstrukturen basierend auf den Abfrageergebnissen erleichtert.
Das obige ist der detaillierte Inhalt vonWie extrahiere ich anonyme Typergebnisse aus SQL-Abfragen mit Entity Framework?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!