>데이터 베이스 >MySQL 튜토리얼 >MySQL용 Entity Framework 6을 사용하여 동적 데이터베이스 연결을 달성하는 방법은 무엇입니까?

MySQL용 Entity Framework 6을 사용하여 동적 데이터베이스 연결을 달성하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-11 04:14:03316검색

How to Achieve Dynamic Database Connection with Entity Framework 6 for MySQL?

MySQL용 Entity Framework 6을 사용한 동적 데이터베이스 연결

EF6(Entity Framework 6)을 사용하여 여러 스키마를 동적으로 연결하는 것은 어려울 수 있습니다. 이 문서에서는 MySQL 데이터베이스에 대한 동적 연결을 설정하고 선택한 데이터베이스 이름을 기반으로 연결 문자열을 전달하는 포괄적인 솔루션을 제공합니다.

EF6용 MySQL 준비

시작 MySQL .Net Connector 6.8.1(베타)을 설치하고 Visual Studio 솔루션에서 라이브러리를 참조합니다. Web.config 파일에 연결 문자열 및 공급자 정보를 추가합니다.

<connectionStrings>
    <add name="mysqlCon"
         connectionString="Server=localhost;Database={0};Uid=username;Pwd=password" 
         providerName="MySql.Data.MySqlClient" />
</connectionStrings>

<entityFramework>
    <defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" />
    <providers>
        <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
    </providers>
</entityFramework>

동적 데이터베이스 연결 만들기

다음으로 ApplicationDbContext 클래스를 수정합니다.

public class ApplicationDbContext: DbContext
{
    public ApplicationDbContext(string dbName) : base(GetConnectionString(dbName))
    {
    }

    public static string GetConnectionString(string dbName)
    {
        // Server=localhost;Database={0};Uid=username;Pwd=password
        var connString = 
            ConfigurationManager.ConnectionStrings["mysqlCon"].ConnectionString.ToString();

        return String.Format(connString, dbName);
    }
}

새 ApplicationDbContext를 생성할 때 데이터베이스 이름을 매개변수로 동적으로 전달할 수 있습니다.

데이터베이스 마이그레이션 처리

마이그레이션의 경우 MigrationsContextFactory 클래스를 생성합니다.

public class MigrationsContextFactory : IDbContextFactory<ApplicationDbContext>
{
    public ApplicationDbContext Create()
    {
        return new ApplicationDbContext("developmentdb");
    }
}

이 팩토리는 마이그레이션을 위한 기본 데이터베이스를 지정합니다. 마이그레이션의 목표는 올바른 것입니다. schema.

결론

이 접근 방식을 활용하면 Entity Framework 6에서 데이터베이스 스키마를 동적으로 선택할 수 있습니다. 기본 연결 팩토리를 수정하고 동적으로 생성하는 도우미 메서드를 생성합니다. 연결 문자열을 이용하면 여러 스키마에 효율적으로 연결이 가능합니다.

위 내용은 MySQL용 Entity Framework 6을 사용하여 동적 데이터베이스 연결을 달성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.