Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bbonkr/ef6-sqlite-sample

Entity Framework 6 with Sqlite Sample project
https://github.com/bbonkr/ef6-sqlite-sample

dotnet dotnet-framework entity-framework orm sample sql sqlite

Last synced: 5 days ago
JSON representation

Entity Framework 6 with Sqlite Sample project

Awesome Lists containing this project

README

        

Entity Framework 6 with SQLite
==============================

## Package

아래 두 Nuget Package 를 추가합니다.

프로젝트의 packages.config 파일의 내용을 확인하십시오.

### NuGet Package
* System.Data.SQLite
* System.Data.SQLite.EF6

### Packages
* EntityFramework
* System.Data.SQLite
* System.Data.SQLite.Core
* System.Data.SQLite.EF6
* System.Data.SQLite.Linq

## config

app.config 혹은 web.config 에는 아래와 같은 요소 Element 가 필요합니다.

NuGet Package 추가시 일부 config가 입력됩니다만, 다시 한번 확인해야 합니다.

```xml






























```

## 파일 추가

SQLite.Interop.dll 파일을 추가합니다. System.Data.SQLite.Core 패키지 내용 중 포함되어져 있으므로 프로젝트에 링크로 추가하면 됩니다.
프로젝트에 파일 추가 후 파일의 속성 창을 열고 아래와 같이 변경합니다.

* 빌드작업: 내용
* 출력 디렉터리에 복사: 새 버전이면 복사

## 프로젝트 파일 구조
```plaintext
│ App.config
│ data.db
│ Form1.cs
│ Form1.Designer.cs
│ Form1.resx
│ packages.config
│ Program.cs
│ SqliteSmaple.csproj

├─Lib
│ DatabaseContext.cs

├─Model
│ Todo.cs

├─Properties
│ AssemblyInfo.cs
│ Resources.Designer.cs
│ Resources.resx
│ Settings.Designer.cs
│ Settings.settings

├─x64
│ SQLite.Interop.dll
└─x86
SQLite.Interop.dll
```

## EF6 SQLite 참조
Code First EF를 구현하려고 했으나, EF6 은 SQLite 에 대한 Migration 을 공식적으로 지원하지 않습니다.

[stackoverflow: Entity Framework 6 with SQLite 3 Code First - Won't create tables](http://stackoverflow.com/questions/22174212/entity-framework-6-with-sqlite-3-code-first-wont-create-tables)

그래서, `data.db` 파일을 만들고, 테이블을 생성한 후 작업을 해야 합니다.

> SQL Server Compact/SQLite Toolbox 확장을 설치하면 편리하게 파일 생성 및 테이블 생성을 할 수 있습니다.

EF7 부터는 지원할 예정이라고 하니, EF7 정식버전이 출시되면 다시 한번 시도해봐야겠습니다.

## 프로젝트 설명

간단한 Todo 목록을 입력하는 응용 프로그램입니다.

Model 디렉터리 하위의 Todo 클래스가 Todo 테이블과 맵핑되는 클래스입니다.

Lib 디렉터리 하위의 DatabaseContext가 데이터베이스와 연결되어 엔티티를 관리하는 클래스입니다.