Entity Framework의 SQL 쿼리에서 익명 유형 결과 추출
Entity Framework에서 SqlQuery
이러한 제한을 극복하고 익명 유형 결과를 얻으려면 원시 SQL을 직접 활용하는 것이 해결책입니다. 제공된 메서드인 DynamicListFromSql을 사용하면 개발자가 이 기능을 구현할 수 있습니다.
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; } } } }
이 메서드를 사용하면 개발자는 SQL 쿼리를 실행하고 동적 개체 형태로 결과를 검색할 수 있습니다. ExpandoObject 인스턴스.
자신의 코드에서 이 메소드를 사용하려면 다음과 같이 호출하면 됩니다.
List<dynamic> results = DynamicListFromSql(myDb,"select * from table where a=@a and b=@b", new Dictionary<string, object> { { "a", true }, { "b", false } }).ToList();
활용하여 이 접근 방식을 사용하면 개발자는 쉽게 SQL 쿼리에서 익명 유형 결과를 얻을 수 있으므로 특정 열을 검색하거나 쿼리 결과를 기반으로 사용자 정의 데이터 구조를 쉽게 생성할 수 있습니다.
위 내용은 Entity Framework를 사용하여 SQL 쿼리에서 익명 형식 결과를 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!