Получить строку SQL из Linqkit

Как я могу вернуть SQL из LinqKit.ExpandableQuery<T>?
Я использую код из stevefenton.co.uk, но, похоже, не удается в

private static System.Data.Entity.Core.Objects.ObjectQuery<T> GetQueryFromQueryable<T>(IQueryable<T> query)
        {
            var internalQueryField = query.GetType().GetFields(System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).Where(f => f.Name.Equals("_internalQuery")).FirstOrDefault();
            var internalQuery = internalQueryField.GetValue(query);
            var objectQueryField = internalQuery.GetType().GetFields(System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).Where(f => f.Name.Equals("_objectQuery")).FirstOrDefault();
            return objectQueryField.GetValue(internalQuery) as System.Data.Entity.Core.Objects.ObjectQuery<T>;
        }

с internalQueryField быть нулевым

Это как-то связано с деревом наследования (LinqKit + Linq), но я не могу разобраться с этим..:(

1 ответ

Решение
string sql = query.ToString();
Другие вопросы по тегам