I would be eternally grateful if someone would help me with this issue. This is something that I’ve been banging my head against for a while now. In my current project, we need to support .Net 3.5.1. This obviously means I cannot use SQLite EF6 support, but LINQ is still supposed to be supported. But, try as I may, I cannot get linq to actually use the linq-to-sql module. Some queries execute correctly, but the system is still using the SQLServer 2008 linq-to-sql implementation that is the default for .Net 3.5.1
If I switch to .Net 4.5, everything works correctly, but with .Net 3.5 some stuff just doesn’t work. Here is my connection code. Nothing very complicated: System.Data.SQLite.SQLiteConnection connection = new System.Data.SQLite.SQLiteConnection(“Data Source=AgentData.s3db”); DataContext context = new DataContext(connection); And when I execute a linq command like this everything works fine and the SQLite DB is queried correctly: var propertiesTable = context.GetTable<Property>(); var PropertiesSet = from a in propertiesTable where a. Name == propertyName orderby a.Name select a; foreach (var property in PropertiesSet) { Trace(property.Value); } However, when I execute certain code things just don’t work and throw exceptions. Especially when dealing with auto number columns. I managed to figure out by dumping the linq log that the reason is that the SQLite Linq-to-SQL code is just not getting invoked. Here is the log output: TRACE LINQ-SQL: SELECT [t0].[PropertyId], [t0].[Name], [t0].[Value] FROM [Properties] AS [t0] WHERE [t0].[Name] = @p0 ORDER BY [t0].[Name] TRACE LINQ-SQL: -- @p0: Input String (Size = 0; Prec = 0; Scale = 0) [DatabaseVersion] TRACE LINQ-SQL: -- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 3.5.30729.6404 Notice the "SqlProvider(Sql2008)” I believe this means that the linq-to-sql module that is getting invoked is the sqlserver 2008 translator, not the sqlite translator. The code that generated this particular output (above) actually works fine because that particular SQL statement will run correctly in SQLite. But for other things, the SQL code generated by the translator is not SQLite compatible (for example if it uses the TOP keyword or a whole slew of other incompatibilities). I know I have everything installed correctly because I am actually getting updates to my SQLite DB file. But the app just throws exceptions wherever the SQL that gets generated isn’t SQLite compatible. Any idea how to force the Connection to use the correct Linq-to-SQL implementation? Is there some configuration that I am missing that makes this work? Thanks for any help anyone can lend! Sean _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users