2

Visual Studio 2012에서 ASP.NET Web Forms 응용 프로그램을 작성하고 있습니다. C# 개체와 데이터베이스를 연결하는 Entity Framework Code First 컨텍스트 클래스가 있습니다. 그러나이 컨텍스트는 데이터베이스 우선 접근 방식을 사용하여 자동으로 생성되었습니다. AFAIK는 EF 5의 Model First First Approach에서 지원하지 않는 고유 한 인덱스 및 사용자 집계와 같은 기능을 사용합니다.Entity Framework 데이터베이스 용 dbDacFx 웹 배포 공급자를 사용하는 방법?

내 프로젝트를 배포하는 데 one-click publish 버튼을 사용하고 있습니다. 내 데이터베이스는 EF 데이터베이스로 인식되고 나는 "실행 코드 먼저 마이그레이션"체크 상자를 볼 수 있지만, 그것은 회색으로 표시됩니다 : 나는 데이터베이스 첫 번째 방법을 사용하기 때문에, 괜찮아

Publish Web dialog

합니다. 하지만 내 기본 연결에 대해 나타나는 "데이터베이스 업데이트"옵션을 사용하여 데이터베이스 스키마를 단순히 동기화하려고합니다. "dbDacFx 웹 배포 공급자"섹션에서 here을 설명합니다. 그렇게하는 방법?

정확하게 이해한다면, 나는 항상이 목적으로 Microsoft SQL Management Studio를 수동으로 사용할 수 있습니다. 이 경우 수동으로 수행하는 방법은 무엇입니까?

답변

3

톰 (tdykstra)를 참조하면 dbDacFx와 모델을 게시 Web.config의 새로운 연결 문자열을 만들 필요가 대신합니다 -

시나리오는 마이그레이션을 사용하지 않고 코드 먼저 배포 유사하다 EF CF 마이그레이션을 사용합니다.

웹은 대화를 게시는 데이터베이스에 대한 게시 메커니즘의 두 가지 유형을 지원합니다

    연결 문자열이 연결되어있는 경우
  1. 증분 DB 스키마가 dbDacFx

를 통해 게시 마이그레이션을 통해

  • EF CF 출판 EF CF 컨텍스트이면 게시 대화 상자에 항상 실행 코드 첫 마이그레이션 확인란이 표시됩니다. 스토리를 간단하고 쉽게 설명하기를 원했기 때문에 이에 대한 구성 옵션을 만들지 않았습니다. 게시 대화 상자를 사용하지 않으려는 고급 사용자의 경우 올바른 내용으로 게시 프로필 (.pubxml) 파일을 만들고 명령 줄에서 게시 용도로 사용할 수 있습니다. 이 시나리오에 대해 VS 게시 대화 상자를 지원하려면 web.config에 연결 문자열을 추가해야합니다.

    EF CF 컨텍스트에서 사용하는 연결 문자열 DatabaseEntities가 있습니다. web.config, DatabaseEntities-publish에 새 연결 문자열을 만들어야합니다.이 연결 문자열은 게시하는 동안에만 사용됩니다. 게시 할 연결 문자열이 DatabaseEntities 및 Publications와 같은 DatabaseEntities의 텍스트 상자에 있는지 확인해야합니다.

  • +0

    설명해 주셔서 감사합니다. 제발, 내 관련 질문에보십시오 : http://stackoverflow.com/questions/12201606/update-database-feature-not-working-in-publish-web-dialog-in-visual-studio-2012 – Mikhail

    +0

    나는 할 수있다. 데이터베이스를 배포하기 위해 웹 게시 패키지를 가져 오지 마십시오. 게시 SQL 탭에서 설정했지만 전혀 배포하지 않습니다. Visual Studio 2013에서 데이터베이스를 먼저 사용하고 있습니다.처음으로 게시 대화 상자를 사용했을 때 데이터베이스가 배포 된 것으로 나타났습니다. 이제 게시 대화 상자를 열면 데이터베이스가 게시에 포함되지 않습니다. – Heinrich