Skip to content

Commit ffc50cf

Browse files
committed
Extracted EF specific code to separate method. Fixes #10
1 parent d2b7858 commit ffc50cf

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

src/QueryPlanVisualizer/Helpers/DatabaseHelper.cs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,15 +40,23 @@ public static DatabaseHelper Create<T>(DataContextBase dataContextBase, IQueryab
4040
}
4141
}
4242

43+
return CreateEntityFrameworkDatabaseHelper(queryable);
44+
}
45+
46+
private static DatabaseHelper CreateEntityFrameworkDatabaseHelper<T>(IQueryable<T> queryable)
47+
{
4348
var query = queryable as DbQuery<T>;
4449
if (query != null)
4550
{
4651
var bindingFlags = BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.GetProperty;
4752

4853
var internalQuery = query.GetType().GetProperty("InternalQuery", bindingFlags)?.GetValue(query);
49-
var objectQuery = internalQuery?.GetType().GetProperty("ObjectQuery")?.GetValue(internalQuery) as System.Data.Objects.ObjectQuery<T>;
54+
var objectQuery =
55+
internalQuery?.GetType().GetProperty("ObjectQuery")?.GetValue(internalQuery) as
56+
System.Data.Objects.ObjectQuery<T>;
5057

51-
if (objectQuery != null) //EF5 uses ObjectQuery from System.Data.Objects namespace, EF6 uses System.Data.Entity.Core.Objects so it will be null
58+
if (objectQuery != null)
59+
//EF5 uses ObjectQuery from System.Data.Objects namespace, EF6 uses System.Data.Entity.Core.Objects so it will be null
5260
{
5361
return new EntityFramework5DatabaseHelper(objectQuery);
5462
}

0 commit comments

Comments
 (0)