Get from IQueryable to IEnumerable
casting, f#
Solution
You need to cast to `IEnumerable<'T>`:
type CrudService<'T when 'T :(new : unit -> 'T) and 'T :> DelEntity>(repo : IRepo<'T>) =
interface ICrudService<'T> with
member this.GetAll () =
repo.GetAll() :> IEnumerable<'T>
Problem
this should be a quick one for all you f# rockers, but it's got me stuck at the moment. I've got an F# type which I'm trying to get to implement a c# interface ``` public interface ICrudService<T> where T: DelEntity, new() { IEnumerable<T> GetAll(); } ``` here's how it's implemnted in c#: ``` public IEnumerable<T> GetAll() { return repo.GetAll(); } ``` `repo.GetAll` returns an `IQueryable`, but the c# compiler knows enough to convert to `IEnumerable` because `IQueryable<T> : IEnumerable<T>`. but In F# the compiler can't work it and I've tried a few attempt to cast it correctly ``` type CrudService<'T when 'T :(new : unit -> 'T) and 'T :> DelEntity>(repo : IRepo<'T>) = interface ICrudService<'T> with member this.GetAll () = repo.GetAll<'T> ``` this is giving me a type mismatch error