2013-03-28 4 views
2

특정 문제를 디버깅하는 데 어려움을 겪고 있으며 몇 가지 질문이 있습니다. 첫째, 여기에 무슨 일이 일어나고 있습니다 :잘못된 열 이름 : SQL/ASP.NET

나는 비교적 간단한 테이블 Employees이라는 기본 키/ID Id을 가지고 있습니다. Username 열도 있습니다. 이는 내 aspnet_Users 테이블에 대한 외래 키 GUID입니다. 마지막으로 다른 테이블 Teams을 가리키는 다른 외부 키 Team_Id이 있습니다.

정말 선택한 직원의 ID를 부여하고 다음 문으로 직원을 발견 DAL의 방법에 전달된다 할 노력하고있어 모든 : 직원이 검색되면

var employee = entities.Employees.Where(emp => emp.Id == employeeId); 

, 선택한 팀의 ID - - 나는 같은 방법으로 전달되는 다른 값을 사용하려면 다음과 같은 사용, (그들에게 할당 된 팀) 직원의 Team_Id 값을 업데이트 :

employee.First().Team_Id = teamId; 
entities.SaveChanges(); 

나는 예외를 얻을

Invalid column name: {Name}

직원에게 이름 열이 없기 때문에 저에게 의미가 없습니다.

상기, 내 모든 질문

은 다음과 같습니다

  1. 는 어디 믹스 업 가능성에서 오는 될 수 있을까? 나는 코드를 단계별로 진행하는 방법을 생각해 보았지만 오류 자체가 쿼리 자체의 어딘가에있는 것처럼 보이기 때문에 쿼리 자체의 실행을 추적하는 방법을 잘 모르겠습니다.

  2. 생성 된 엔티티와 관련이있을 수 있습니까? 내가 입력했을 때 employee.First().Name이 Intellisense에 표시됩니다. 필자가 언급 한 바에 따르면 직원 테이블에 이름 열이 없으므로 정말 혼란 스럽다.

+0

직원 클래스를 표시 할 수 있습니까? –

+0

수업이 아닙니다. 그것은 데이터베이스의 테이블입니다. "Id"열 (int) "사용자 이름"열 (GUID) 및 "Team_Id"열 (int)이 있습니다. –

+0

Name이라는 열이 있었는데 지금은 삭제 되었습니까? –

답변

0

쿼리가 실행되는 한 SQL 프로필러를 사용하여 실제로 실행되는 스크립트를 볼 수 있습니다. 어쨌든 생성 된 SQL 문제를 해결하는 좋은 방법입니다.

귀하의 재산에 대해 어떻게 든 귀하의 수업에 적용되었으므로 귀하의 데이터 모델은 이유가 무엇이든간에 귀하의 데이터 모델에 있다고 생각합니다. 나는이 데이터 모델이 EF 또는 LINQ-to-SQL인지 언급하지 않고 데이터 모델로 이동한다고 말하고 싶습니다. 그러면 "Name"이 나타납니다. 그냥 제거하면 클래스 및 데이터 액세스 항목에서 제거됩니다.

+0

그것의 EF를 사용합니다. 미안합니다. Name 속성을 제거하고 어떻게 작동하는지 살펴 보겠습니다. –

+0

Name 속성과 관련된 모든 것을 찾아 냈습니다. 이제이 오류가 발생합니다. "개념 유형 'Model.Employee'의 구성원 수가 개체 측 형식 멤버 인 CPM_Data_Layer와 일치하지 않습니다. 종업원'.멤버 수를 확인하십시오. "엔터티를 다시 생성 할 수 있습니까? –

1

문제가 해결되었습니다. 방금 기존 Entity Framework 모델을 제거하고 다시 추가했습니다.

+0

때로는 그게 전부입니다 - 수동으로 수작업으로 수정할 수는 있지만 모델이 너무 복잡하지 않은 한 오래된 kill-and -recreate 메서드는 종종 가장 쉽습니다. –