2012-03-29 6 views
2

데이터 액세스에 EF를 사용하고 사용자 인터페이스에 WPF 및 MVVM을 사용하는 프로젝트에서 작업하고 있습니다.XAML이로드 실패 오류를 발생합니다.

저는 윈도우의 데이터 컨텍스트에 뷰 모델을 바인딩하고 있습니다. 이 뷰 모델에는 다음과 같이 정의 된 기본 생성자가 있습니다.

public KonumVM() 
    { 
     LocationOperations = new LocationOperations(); 
     LocationNames = new ObservableCollection<string>(); 
     Corporations= new ObservableCollection<Kurum>(); 
     //Corporations= LocationOperations.GetCorpValues(); 

     //foreach (var corp in Corporations) 
     //{ 
     // LocationNames.Add(corp.Name); 
     //} 
    } 

주석 처리 된 행은 데이터베이스에 쿼리하는 곳입니다. 선이 주석 처리되지 않은 경우이 View Model에 바인딩되는 창의 XAML 코드를 편집하려고하면 예외가 발생합니다. 이는 디자이너를 차단하는 XAML로드 실패라고 생각합니다. 예외는 메시지의 끝에 있습니다. 필자가 데이터베이스를 쿼리하는 데이터베이스에 주석을 달면 디자이너도 괜찮습니다. 예외는 없습니다.

어떻게해야합니까? 데이터베이스 액세스 코드를 기본 생성자가 아닌 다른 위치로 이동해야합니까?

는 데이터베이스 "DemirbaşEntityLibrary.DemirbaşContext는"로그인에서 를 요청 할 수 없습니다. 로그인에 실패했습니다. 'Rfid \ Mert'사용자가 로그인하지 못했습니다. System.Data.ProviderBase.DbConnectionClosed.OpenConnection에서 System.Data.ProviderBase.DbConnectionFactory.GetConnection에서 System.Data.ProviderBase.DbConnectionPool.GetConnection (DbConnection owningObject) (DbConnection owningConnection) (DbConnection outerConnection에서
, System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf에서 System.Data.SqlClient.SqlConnection.Open()에서 DbConnectionFactory ConnectionFactory를) (부울 openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, 문자열으로 Exception, 문자열 attemptedOperation, 부울 & closeStoreConnectionOnFailure)

+0

디자이너에서 연결이 필요하지 않은 경우이 [SO 질문] (http://stackoverflow.com/questions/425760/is-there-a-designmode-property-in-wpf)을보고보십시오 –

+0

It 내가 찾고있는 것 같지만 "this"가 사용되는 메서드에서 종속 개체 인수가되어야하는 이유는 무엇입니까? MVVM을 사용하고 있습니다. DesignerProperties.GetIsInDesignMode (this) –

+1

이것은 여러분의 필요에 더 가깝습니다. http://stackoverflow.com/questions/2498521/wpf-mvvm-viewmodel-constructor-designmode –

답변

0

해결 방법은 내 컨텍스트 바인딩 코드를 코드 숨김 파일로 옮김으로써 UI를 디자인하는 동안 XAML 파서가 DB에 액세스하지 못하게합니다.당신은 UI를 설계 완료 할 때

this.DataContext = new MyViewModel(); 

당신은 (어떤 이유로) 코드 숨김 접근 방식을 좋아하지 않는 경우에, 당신은 당신의 XAML 코드로 다시 이동할 수 있습니다.

0

데이터베이스 연결에 사용되는 연결 문자열을 확인하십시오. 당신이 당신의 웹 사이트를 위해 MSSQL 데이터베이스를 사용하는 경우 아래에 주어진 샘플 연결 문자열을 참조하십시오

경우 데이터 원본 = XXXX; = = DB 암호 = XXXXXX = 데이터베이스 사용자 이름 암호 = # xxxxx는 # "서버 초기 카탈로그 = XXXXXX = 데이터베이스 이름 사용자 ID의 IP 주소가

당신은 SQL 서버에 연결할 수 있는지 확인합니다 데이터베이스 세부 정보 (사용자 이름 및 암호)를 사용하여 원격으로 Management Studio를 엽니 다.

연결 문자열에 사용한 사용자 이름과 암호로 데이터베이스에 연결할 수없는 경우 데이터베이스 사용자의 암호를 다시 설정해보십시오 연결을 시도하면 문제가 해결됩니다 ...

k를 참조하십시오. http://blog.sqlauthority.com/2009/08/20/sql-server-fix-error-cannot-open-database-requested-by-the-login-the-login-failed-login-failed-for-user-nt-authoritynetwork-service/

+0

응용 프로그램을 실행할 때 제대로 작동하기 때문에 연결 문자열이 정확하다고 보입니다. 내가 제공 한 링크에서 설명 된 단계를 완료했지만 작동하지 않았습니다. –

+0

@ ArifMertAkçakaya 사용자 'Rfid \ Mert'에 대해 프로젝트 전체를 검색하고 그에게 설정된 비밀번호를 확인할 수 있습니까? 또한이 사용자와 함께 DB에 로그인하려고 할 때 성공합니까? –

+0

연결 문자열은 다음과 같습니다. "이 계정으로 DB에 로그인하면 성공합니다. –

관련 문제