2010-06-04 5 views
2

응용 프로그램에 System.Data.SQLite 공급자를 사용하고 있습니다. 그러나 새 객체를 만들어 데이터베이스에 삽입하려고하면 SQL syntax error near "SELECT"이 생깁니다.LINQ-to-SQL with SQLite : 삽입시 "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

내가 SCOPE_IDENTITY()가 T-SQL (SQL 서버)에 특정한 것을 확신 : SQLite는과 Linq에에 대한 정보를 원하시면이 질문을 참조하십시오. – GalacticCowboy

답변

3

무엇 SQLite는의 더 나은 아이디어를 줄 수있는 생성되는 SQL을 표시하는 방법에 대해 여기에 기사를있다 : 오류 전에 마지막으로 생성 된 쿼리의 로그 출력이 있습니다 싫어 : http://msdn.microsoft.com/en-us/library/bb386961.aspx

로그 편집 : SqlProvider (Sql2008) 부분에서 SQLite 구문 대신 SqlServer 2008 구문을 사용하여 구문이 유효하지 않은 이유를 설명하는 것처럼 보입니다.

EDIT 다시 추가 정보를 원하시면 : LINQ with SQLite (linqtosql)

관련 문제