1. 程式人生 > >linq to Entities,將查詢語句轉換為普通的SQL語句

linq to Entities,將查詢語句轉換為普通的SQL語句

            using (testEntities MyEntity = new testEntities())
            {
                #region linq to entities 內容練習3

                var result = from s in MyEntity.stuinfo
                             where s.username == "pkm"
                             select new
                             {
                                 username=s.username,
                                 age=s.age
                             };
                var psql = result.GetType().GetMethod("ToTraceString").Invoke(result, null);//得到原始sql語句
                
                Console.WriteLine(psql);
                #endregion
            }

以下函式可以得到相同的結果:

        /// <summary>
        /// 輸入生成的SQL語句
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="query">查詢結果的變數</param>
        /// <returns></returns>
        private static string GetSQL<T>(IQueryable<T> query)
        {
            return query.GetType().GetMethod("ToTraceString").Invoke(query,null).ToString();
        }
        //請用方法 Console.WriteLine(GetSQL(result));