Rumah >pangkalan data >tutorial mysql >Bagaimana Mengekstrak Hasil Jenis Tanpa Nama daripada Pertanyaan SQL Menggunakan Rangka Kerja Entiti?
Pengeluaran Hasil Jenis Tanpa Nama daripada Pertanyaan SQL dalam Rangka Kerja Entiti
Dalam Rangka Kerja Entiti, SqlQuery
Untuk mengatasi had ini dan mendapatkan hasil jenis tanpa nama, penyelesaiannya terletak pada memanfaatkan SQL mentah secara langsung. Kaedah yang disediakan, DynamicListFromSql, membolehkan pembangun mencapai fungsi ini.
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; } } } }
Kaedah ini membolehkan pembangun melaksanakan pertanyaan SQL dan mendapatkan semula hasil dalam bentuk objek dinamik, yang disimpan sebagai pasangan nilai kunci dalam Contoh ExpandoObject.
Untuk menggunakan kaedah ini dalam kod anda sendiri, hanya panggil ia sebagai berikut:
List<dynamic> results = DynamicListFromSql(myDb,"select * from table where a=@a and b=@b", new Dictionary<string, object> { { "a", true }, { "b", false } }).ToList();
Dengan menggunakan pendekatan ini, pembangun boleh mendapatkan hasil jenis tanpa nama daripada pertanyaan SQL dengan mudah, memudahkan pengambilan semula lajur tertentu atau penciptaan struktur data tersuai berdasarkan hasil pertanyaan.
Atas ialah kandungan terperinci Bagaimana Mengekstrak Hasil Jenis Tanpa Nama daripada Pertanyaan SQL Menggunakan Rangka Kerja Entiti?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!