Я использую подход Code-First с EF, и я хотел использовать IDbSet вместо DbSet, чтобы я мог проводить модульное тестирование с имитациями.Моя проблема в том, что я использую метод Include () для быстрой загрузки в случае необходимости, но метод Include () не предоставляется через IDbSet.Я видел пример кода, использующего метод расширения для выставления Include (), но он, похоже, не работает для меня;объект objectQuery в этом примере всегда имеет значение null.Пожалуйста, дайте мне знать, как это исправить.
public static class IQueryableExtension
{
public static IQueryable<T> Include<T>(this IQueryable<T> source, string path)
where T : class
{
ObjectQuery<T> objectQuery = source as ObjectQuery<T>;
if (objectQuery != null)
{
return objectQuery.Include(path);
}
return source;
}
public static IQueryable<T> Include<T, TProperty>(this IQueryable<T> source,
System.Linq.Expressions.Expression<Func<T, TProperty>> path)
where T : class
{
ObjectQuery<T> objectQuery = source as ObjectQuery<T>;
if (objectQuery != null)
{
return source.Include(path);
}
return source;
}
}