LINQ-to-SQL с SQLite: синтаксическая ошибка рядом с "SELECT" при вставке


Я использую систему .Данные.Поставщик SQLite для моего приложения. Однако, когда я пытаюсь создать новый объект и вставить его в базу данных, я получаю SQL syntax error near "SELECT".

В основном мой код выглядит так:

//supplies is a DataContext connected to my DB
Table<Store> stores = supplies.Stores;
//...
Store newStore = new Store();
// A Store has an Id (pk autoincrement), Name, Number, and EntitySet<Usages>
newStore.Name = "New Store";
newStore.Number = 0;
//...
stores.InsertOnSubmit(newStore);
supplies.SubmitChanges();

Но распространился на некоторые методы.

Является ли это распространенной проблемой для новичков? Если да, то что я делаю не так? Если нет, то где / как я должен это отладить? Я довольно новичок в LINQ-to-SQL.

UPDATE : вывод журнала последнего сгенерированного запроса прежде чем ошибка такова:

INSERT INTO [Stores]([Number], [Name])
VALUES (@p0, @p1)

SELECT CONVERT(Int,SCOPE_IDENTITY()) AS [value]
-- @p0: Input Int32 (Size = 0; Prec = 0; Scale = 0) [0]
-- @p1: Input String (Size = 0; Prec = 0; Scale = 0) [New Store]
-- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 3.5.30729.4926
1 2

1 ответ:

Здесь есть статья о том, как показать генерируемый SQL, которая может дать лучшее представление о том, что SQLite не нравится: http://msdn.microsoft.com/en-us/library/bb386961.aspx

EDIT for log: из части SqlProvider(Sql2008) похоже, что он пытается использовать синтаксис SqlServer 2008 вместо синтаксиса SQLite, который объяснил бы, почему он считает синтаксис недопустимым.

Отредактируйте еще раз для получения дополнительной информации: смотрите этот вопрос для получения информации о SQLite и Linq: LINQ with SQLite (linqtosql)