Why isn't Generic Casting working on this section of code?
IQueryable<T> IS3Repository.FindAllBuckets<T>()
{
IQueryable<object> list = _repository.GetAllBuckets().Cast<object>().AsQueryable();
return list == null ? default(T) : (T)list;
}
This is an error: Error 3 Cannot implicitly convert type 'T' to 'System.Linq.IQueryable'. Explicit conversion exists (are you missing the listing?)
I am implementing this interface:
IQueryable<T> FindAllBuckets<T>();
What is the problem?
Here's what I've tried:
-
IQueryable<T> IS3Repository.FindAllBuckets<T>() { IQueryable<object> list = _repository .GetAllBuckets() .Cast<object>().AsQueryable(); return list == null ? list.DefaultIfEmpty().AsQueryable() : list; }
+2
source to share
2 answers
Try the following:
IQueryable<T> IS3Repository.FindAllBuckets<T>()
{
IQueryable<T> list = _repository
.GetAllBuckets()
.Cast<T>()
.AsQueryable();
return list ?? new List<T>().AsQueryable();
}
The main problem with your original approach is that you were trying to return an instance T
, not an instance IQueryable<T>
.
0
source to share