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 ответ:
Здесь есть статья о том, как показать генерируемый 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)