2012-06-15 2 views
0

ASP.Net 웹 API에서 새 프로젝트를 만들었지 만 모델에서 컨트롤러로 데이터를 가져 오는 데 문제가 있습니다. 지금까지 몇 가지 접근법을 시도하고 http://www.asp.net/web-api에서 자습서를 읽었지만, 모델에 잘 적용된 테이블 데이터는 끝점 액세스를 위해 컨트롤러에 연결하지 않습니다. 튜토리얼에 사용 된 모의 데이터가 동일한 구조로 잘 작동하므로 이러한 연산에 필요한 특정 접근법이 있습니까?SQL Server to MVC4 웹 API?

인터페이스 :

public interface ISkillRepository 
{ 
    IEnumerable<Skill> GetAll(); 
    Skill Get(int id); 
    Skill Add(Skill item); 
    void Remove(int id); 
    bool Update(Skill item); 
} 

모델 :

public IEnumerable<Skill> GetAll() 
    { 
     using (var db = new XXXEntities()) 
     { 
      var skills = db.Skill.ToList(); 
      return skills; 
     } 
    } 

컨트롤러 :

static readonly ISkillRepository repository = new SkillsRepository(); 

    public IEnumerable<Skill> GetAllSkill() 
    { 
     return repository.GetAll(); 
    } 

모델은 데이터베이스에 성공적으로 호출을하고 정보를 검색, 그러나 그것은 통과하지 않습니다 끝점으로 액세스되는 컨트롤러에 성공적으로 연결됩니다. 모델 코드를 컨트롤러에 가져 오면 성공적으로 실행되지만 요청시 500을 던져 버립니다. 잘못된 반환 값 등에 대한 오류는 없습니다. 어떤 도움이라도 대단히 감사하겠습니다.

+1

코드를 게시하십시오. –

+0

정확한 문제는 무엇입니까? 오류가 있습니까? 그렇다면 무엇입니까? 중단 점을 설정하고 코드를 밟았습니까? –

+0

예 컨트롤러에서 DB 가져 오기 코드 (디버그가이 호출에서 올바른 데이터를 보여줌)를 사용해도 내 머리를 긁는 이유 인 중단 점을 설정했지만 호출해도 성공하지 못합니다. – Moustachio

답변

0

EF 4.1 - Code First - JSON Circular Reference Serialization Error이 관계에서 '가상'유형 제거하는 것입니다에 따라 해결책 :

public /*virtual*/ ICollection<Skill> Skill { get; set; } 

또는

return accessibility + (accessibility != "private" ? "" : ""); 

보다는

:

return accessibility + (accessibility != "private" ? " virtual " : ""); 

이 모델을 사용하는 경우를 발전기.