2014-12-24 5 views
0

현재 Entity Framework 6을 사용하여 웹 API 2 API를 작성 중입니다. 많은 API 호출이 단일 테이블로 바로 돌아가고 반환되기 때문에 모든 것이 잘 진행되고있었습니다. JSON으로서의 객체.다양한 모델, 웹 API, EntityFramework에서 작성된 객체를 반환합니다. 6

이제 여러 모델에서 하나의 개체를 만들려고 애써 왔습니다. 먼저 코드를 사용하고 있습니다.

내가 반환 할 개체의 단순화 된 버전이

{ Name : Brand.Name, CategoryScores : [{CategoryId : 'x', Score : 'x'}]} 

다음은 여기에 논리가 그것

작업 후 밖으로 이동합니다

[Table("Brands")] 
public class BrandModel 
{ 

    [Key] 
    public string BrandId { get; set; } 
    public string BrandName { get; set; } 
} 

[Table("CategoryScores")] 
public class CategoryScoresModel 
{ 

    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public Guid Id { get; set; } 
    public string BrandId { get; set; } 
    public string TraqCategoryScore { get; set; }} 

public class TraqIndexDTO 
{ 
    public string BrandName { get; set; } 
    public IEnumerable<CategoryScoresDTO> CategoryScores { get; set; } 

} 

public class CategoryScoresDTO 
{ 
    public string CategoryId { get; set; } 
    public string TraqCategoryScore { get; set; } 
} 

컨트롤러 내 현재 모델입니다입니다

private AuthContext db = new AuthContext(); 

public IHttpActionResult Get() 
    { 
     //var results = this.repository.SelectAll(); 
     return Ok(GetTraqIndex()); 
    } 
public IEnumerable<TraqIndexDTO> GetTraqIndex() 
    { 
     var traqIndex = from b in db.Brand 
         select new TraqIndexDTO() 
         { 
          BrandName = b.BrandName, 
          CategoryScores = getCatgoryScoresByBrandId(b.BrandId) 
         }; 

     return traqIndex; 
    } 

public IEnumerable<CategoryScoresModelDTO>getCatgoryScoresByBrandId(string brandId) 
    { 
     var scores = from s in db.CategoryScoresModel 
        where s.BrandId == brandId 
        select new CategoryScoresDTO() { 
         CategoryId = s.CategoryId, 
         TraqCategoryScore = s.TraqCategoryScore 
        }; 

     return scores; 
    } 

현재이 오류가 발생합니다. "getCategoryScoresByBrandId (System.Strin g) '방법,이 방법은 저장소 표현으로 번역 될 수 없다 ""

많은

감사 롭

답변

1

수정 GetTraqIndex 주시면 감사하겠습니다 따라야 할 어떤 도움과지도 또는 좋은 예 :.

public IEnumerable<TraqIndexDTO> GetTraqIndex() 
{ 
    var traqIndex = db.Brand.ToList().Select(b => new TraqIndexDTO() 
        { 
         BrandName = b.BrandName, 
         CategoryScores = getCatgoryScoresByBrandId(b.BrandId).ToList() 
        }).ToList(); 

    return traqIndex; 
} 
+0

감사하지만 한 brandname 및 카테고리 점수 지금 –

+0

그게 전부 확인 많은 현재 컨텍스트에 존재하지 않는이 도움을 주셔서 감사하지만 지금은 현재 컨텍스트 –

+0

S이 getCatgoryScoresByBrandId (b.BrandId)으로 사용할 수 없습니다 얻을 내 실수 유형을 알리라.) –