6

VS 2013 및 SQL Svr 2012를 사용 중이며 EF를 사용하여 Gridview를 채우려 고합니다. 이것은 매우 간단한 테스트이므로 키와 데이터 필드가있는 테이블이 하나만 있습니다. 모델을 만드는 과정은 잘 작동하는 것 같습니다. 디자이너보기에서 예상대로 파일이 app_code로 만들어지고 bin 폴더가 2 개의 dll로 만들어지고 구성 파일이 연결 문자열 및 기타 항목으로 업데이트됩니다.Visual Studio 2013 및 Entity Framework

"명명 된 연결"을 선택하려고하면 "지정된 메타 데이터 리소스를로드 할 수 없습니다"라는 오류 메시지가 나타나며 프로젝트를 다시 빌드하여 어셈블리를 가져 오는 방법에 대해 설명합니다.

나는 시간이 같은 다른 경우를 읽고 썼다 나는 이해할 수 없다 : 그것은 2010

  • 가 어떻게 해결합니까 VS에 문제가 결코 없을 때 이런 일이 왜

    1. 을 원하는 리소스를 가리키는 연결 문자열 정규화 된 어셈블리 이름에 대한 기술적 조언을 모두 잃어 버렸습니다. 나는 아무것도 시도하지 않았습니다.

    2. 자원을 강제로 적절한 위치에 설정하려면 어떻게해야합니까? 내가 읽은 모든 조언은 VS 아주 잘 관련하지 않는 것 같습니다 2013

    난 그냥 현재 내가 함께 VS 2010를 사용하고 있습니다 VS 2012를 2013 VS를 제거하고 사용해야하는 경우를 결정해야 ASP 4.0과 나는 ASP 4.5로 이동하고 일반적으로 Microsoft 기술을 따라 가고 싶습니다. 그러나 버그가있는 VS 릴리스를 처리 할 기술 수준이 없습니다. 이 EF 집행은 내 컴퓨터의 버그 또는 이상한 손상으로 인한 것일 수 있습니다. 어떤 경우인지 파악하려고합니다. 과거에 이러한 도구가 없었던 클린 머신에 VS 2013 Express 및 SQL Svr 2012를 설치했습니다.

    정말 그것은 단지 그렇게하는 데 몇 분 정도 걸립니다 Visual Studio를 잘 알고있는 사람이 내 문제를 복제하려고보고 싶어요

    : 작은을 생성,

    1. 을 MS SQL 서버에서 기본 키와 몇 개의 데이터 필드가 있고 하나의 테스트 데이터로 채워지는 하나의 테이블을 가진 DB - TestTable1로 TinyDB라고 부릅니다.

    2. 웹용 VS 2013 Express를 사용하는 경우 VB를 사용하여 "ASP Empty Web Site"옵션과 함께 "새 웹 사이트"를 만듭니다.

    3. "ADO.Net 엔터티 데이터 모델"이 포함 된 ASP App_Code 폴더를 추가하고 이름을 "모델"로 그대로 둡니다.

    4. DB에서 모델을 생성하고 "TinyDB"에 대해 "Entity Framework 6.0"을 사용하여 "새 연결"을 만든 다음 "TestTable1"을 선택하십시오. 네임 스페이스는 "TinyDBModel"입니다. "마침"을 클릭하면 App_Code, 다른 폴더에 여러 항목이 생성되고 web.config도 업데이트됩니다.

    5. default.aspx라는 웹 양식을 추가하고 gridview를 끌어다 놓습니다. gridview의 디자인 모드에서 "새 데이터 원본"을 선택한 다음 "엔터티"옵션 (default.aspx에 나타나는 EntityDataSource1의 메모 이름)을 선택합니다. 다음을 클릭하고 "named connection"아래에서 "TinyDBEntities"를 선택하십시오. 여기에서 "내 지정된 메타 데이터 리소스를로드 할 수 없습니다."라는 오류 메시지가 나타납니다.

    VS 2010의이 정확한 연습은 완벽하게 작동하고 올바른 데이터가 표시된 눈금을 만듭니다.

  • 답변

    8

    아쉽게도 Entity Framework의 최신 버전 인 EF6에서는 EntityDataSource 컨트롤이 작동하지 않습니다. 다행히도 컨트롤이 VS 또는 EF의 향후 업데이트 버전에서 업데이트를 얻지 만, 지금은 두 버전을 함께 사용할 수 없습니다.

    몇 솔루션/대안이 있습니다

    1. 다시 EF 5. 드롭로부터의 EF 어셈블리를 삭제는 App_Code 폴더에서 .edmx 및 .TT 파일을 삭제이 작업을 수행하기 위해 Bin 폴더를 열고 web.config에서 EF에 대한 참조를 제거하십시오. 그런 다음 사이트를 다시 작성하고 새 ADO.NET 엔터티 모델을 추가하고 버전 선택 대화 상자에서 버전 5를 선택하십시오. 그런 다음 App_Code 폴더에서 .tt 파일을 삭제하고 EDMX diagam을 열고 빈 곳을 마우스 오른쪽 단추로 클릭 한 다음 Properties Grid에서 Code Generation Strategy를 Legacy ObjectContext로 설정합니다. 그런 다음 다시 재건하면 효과가 있습니다.

    2. 모델 바인딩을 사용하십시오. 이것은 실제로 권장되는 솔루션입니다. Microsoft/EF 팀은 EntityDataSource 컨트롤에서 벗어나 Dynamic Data 웹 사이트에만 사용하도록 권장합니다. Model Binding이 선호되는 솔루션입니다. 사용하기가 꽤 깨끗하고 간단하며 쿼리 및 개체 업데이트를 제어 할 수 있습니다. 첫 번째 제안은 완벽하게 작동 http://www.asp.net/web-forms/tutorials/data-access/model-binding/retrieving-data

    +1

    안녕 내몽고 자치구을, 나는 두 번째 제안에 모델 바인딩 튜토리얼을 추구합니다 - 대단히 감사합니다 : 모델 바인딩에 대한 자세한 정보를 원하시면, 체크 아웃! 나는 당신의 단계가 주어진 순서대로 따라야한다는 것을 명심해야한다. (EDMX 속성을 변경하기 전에 .tt를 삭제한다.) 또한 config 파일의 자동 EF 업데이트는 적어도 작은 테스트에서 ConfigSections를 파일의 시작 부분으로 다시 이동하기 위해 잘라 내기 붙여 넣기가 필요합니다. 광범위한 문제에 대한 귀하의 통찰력과 함께 상세한 솔루션이 가장 높이 평가됩니다! –