수색…


소개

SQLite 는 독립적 인 서버리스 (serverless) 트랜잭션 SQL 데이터베이스입니다. 무료로 사용할 수있는 .NET SQLite 라이브러리와 Entity Framework SQLite 공급자를 모두 사용하여 .NET 응용 프로그램 내에서 사용할 수 있습니다. 이 항목에서는 Entity Framework SQLite 공급자의 설정 및 사용법에 대해 설명합니다.

SQLite 공급자와 함께 Entity Framework를 사용하도록 프로젝트 설정

Entity Framework 라이브러리는 SQL Server 공급자와 함께 제공됩니다. SQLite를 사용하려면 추가 종속성과 구성이 필요합니다. NuGet에서 필요한 모든 의존성을 사용할 수 있습니다.

SQLite 관리 라이브러리 설치

Mananged Depedencies는 모두 NuGet Package Manager Console을 사용하여 설치할 수 있습니다. Install-Package System.Data.SQLite 명령을 실행합니다.

System.Data.SQLite 설치하기

위에 표시된 것처럼 System.Data.SQLite 설치할 때 관련된 모든 관리 라이브러리가 함께 설치됩니다. 여기에는 SQLite 용 EF 공급자 인 System.Data.SQLite.EF6 이 포함됩니다. 또한 프로젝트는 이제 SQLite 공급자를 사용하는 데 필요한 어셈블리를 참조합니다.

프로젝트 참조

비 관리 라이브러리 포함

SQLite 관리 라이브러리는 SQLite.Interop.dll 이라는 관리되지 않는 어셈블리에 종속됩니다. 이 패키지는 SQLite 패키지와 함께 다운로드 된 패키지 어셈블리에 포함되어 있으며 프로젝트를 빌드 할 때 빌드 디렉토리에 자동으로 복사됩니다. 그러나 관리되지 않으므로 참조 목록에 포함되지 않습니다. 그러나이 어셈블리는 SQLite 어셈블리가 작동하는 응용 프로그램과 함께 배포되어야합니다.

참고 :이 어셈블리는 비트 종속적입니다. 즉, 지원하려는 각 비트 니스 (x86 / x64)에 대해 특정 어셈블리를 포함해야합니다.

프로젝트의 App.config 편집하기

SQLite를 Entity Framework 공급자로 사용하려면 app.config 파일을 수정해야합니다.

필수 수정 사항

패키지를 설치할 때 app.config 파일은 SQLite 및 SQLite EF에 필요한 항목을 포함하도록 자동으로 업데이트됩니다. 불행히도 이러한 항목에는 몇 가지 오류가 있습니다. 올바르게 작동하려면 수정해야합니다.

먼저 구성 파일에서 DbProviderFactories 요소를 찾습니다. 그것은 system.data 요소 내에 있으며 다음을 포함합니다

<DbProviderFactories>
  <remove invariant="System.Data.SQLite.EF6" />
  <add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" />
  <remove invariant="System.Data.SQLite" /><add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
</DbProviderFactories>

단일 항목을 포함하도록 단순화 할 수 있습니다.

<DbProviderFactories>
    <add name="SQLite Data Provider" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
</DbProviderFactories>

이것으로, 우리는 EF6 SQLite 제공자가 SQLite 팩토리를 사용해야한다고 지정했습니다.

SQLite 연결 문자열 추가

연결 문자열은 루트 요소 내의 구성 파일에 추가 할 수 있습니다. SQLite 데이터베이스에 액세스하기위한 연결 문자열을 추가하십시오.

<connectionStrings>
    <add name="TestContext" connectionString="data source=testdb.sqlite;initial catalog=Test;App=EntityFramework;" providerName="System.Data.SQLite.EF6"/>
</connectionStrings>

여기서 주목해야 할 중요한 것은 provider 입니다. System.Data.SQLite.EF6 으로 설정되었습니다. 이것은 우리가이 연결 문자열을 사용할 때 우리가 SQLite를 사용하고 싶어한다는 것을 EF에 알려줍니다. 지정된 data source 는 예제 일 뿐이며 SQLite 데이터베이스의 위치와 이름에 따라 달라집니다.

첫 번째 SQLite DbContext

모든 설치 및 구성이 완료되면 이제 SQLite 데이터베이스에서 작동하는 DbContext 를 사용할 수 있습니다.

public class TestContext : DbContext
{
    public TestContext()
        : base("name=TestContext") { }
}

name=TestContext 를 지정하면 app.config 파일에있는 TestContext 연결 문자열을 사용하여 컨텍스트를 생성해야 함을 나타냅니다. 이 연결 문자열은 SQLite를 사용하도록 구성되었으므로이 컨텍스트는 SQLite 데이터베이스를 사용합니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow