2009-11-24 5 views
1

나는 다운로드 http://sqlite.phxsoftware.com/ 에서 LINQ - 투 - SQLite는 설치하지만 다음 테스트 코드가 있습니다Linq-to-SQLite를 올바르게 사용하는 방법은 무엇입니까?

SQLite는 오류 "

근처 :

[ Table(Name = "items") ] 
public class MyItem 
{ 
    [ Column(IsPrimaryKey = true) ] 
    int MyId; 
} 

public class MyDb : DataContext 
{ 
    public MyDb(IDbConnection c) : base(c) {} 
    public Table<MyItem> myItems; 
} 

var connection = new SQLiteConnection("Data Source=my.db;") 
var database = new MyDb(connection); 
database.CreateDatabase(); 

는 예외"CreateDatabase "에 실패 DATABASE ": 구문 오류

내가 뭘 잘못하고있어?

답변

1

Microsoft SQL의 'DataContext'기본 클래스가 특정 것으로 보입니다. SQLite ADO .NET은 LINQ를 지원하지만 GUI 마법사를 사용하여 데이터베이스 액세스 클래스를 생성하는 것이 좋습니다. 이러한 클래스는 'DataContext'를 하위 클래스로 만들지 않으며 LINQ를 사용할 수 있습니다.

+0

LINQ 쿼리와 함께 ADO .NET Entity Framework 사용 – Richard

1

Linq와 SQL (SQL Server 전용) 및 Linq to Entities (Entity Framework)를 혼동하는 경우가 있습니다. SQLite ADO.NET 공급자는 Linq to SQL이 아닌 Entity Framework를 지원합니다. 그리고 DataContext 클래스는 Entity Framework가 아닌 Linq to SQL을위한 것입니다 ...

Eye of the Hell에서 제안한 것처럼 엔티티 모델 디자이너를 사용해야합니다. 수동으로 매핑을 만들 수도 있지만 실제로는 쉽지는 않습니다 ...

그런데 Entity Framework에는 CreateDatabase 메서드가 없으므로 데이터베이스를 그런 식으로 만들 수 없습니다. 어쨌든 SQLite에는 CREATE DATABASE 명령어가 없음)

관련 문제