Получить строку 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), но я не могу разобраться с этим..:(