DISCLAIMER: I am not an expert on all the ways to use LINQ and Entity
Framework.

I've reviewed your sample code.  It would seem that the difference between
the two method overloads is that working one resolves to:

        public static TSource FirstOrDefault<TSource>(
                this IEnumerable<TSource> source,
                Func<TSource, bool> predicate
        );

And the non-working one resolves to:

        public static TSource FirstOrDefault<TSource>(
                this IQueryable<TSource> source,
                Expression<Func<TSource, bool>> predicate
        );

The main difference between these two method overloads is that one uses
IEnumerable and one uses IQueryable.  

Unfortunately, it would appear (to me at least) that IQueryable is specific
to "LINQ to SQL" (i.e. SQL Server), as documented here:

        http://en.wikipedia.org/wiki/Language_Integrated_Query

Therefore, the solution here is to make sure that the first overload (the
one with IEnumerable) is used when using the System.Data.SQLite LINQ
provider.

--
Joe Mistachkin

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to