2012-12-12 4 views
1

이것은 간단해야하며 엄청나게 밀집되어 있지만 필자가 알아낼 수있는 예제를 찾을 수 없습니다. 매개 변수를 통해 전달되는 assessmentId에 의해 tblAsset 항목의 목록을 필터링하고 싶습니다. 매개 변수 값을 가져올 수 있지만 쿼리를 작성하는 방법을 모르겠습니다.웹 API 매개 변수 필터링

내 모델은 모델 생성 마법사를 사용하여 기존 데이터베이스에서 작성됩니다.

도움 주셔서 감사합니다.

public IEnumerable<tblAsset> GettblAssets() 
{ 
    NameValueCollection nvc = HttpUtility.ParseQueryString(Request.RequestUri.Query); 
    var assessmentId = nvc["aid"]; 

    //limit the assets by assessmentId somehow and return 
} 
+0

일부가 아닙니다하지만 당신은 또한과 같이 쿼리 문자열 매개 변수에 액세스 할 수 있습니다 (당신이 가진 저장 HttpUtility 사용 및 수동으로 파싱 등) ... IEnumerable GettblAssets ([FromUri] int? assessmentId = null) –

답변

0

당신은 당신의 데이터베이스에 의해 반환 된 IQueryable<tblAsset> 인스턴스에서 .Where 확장 방법을 사용할 수 있습니다 : 귀하의 질문의

public IEnumerable<tblAsset> GettblAssets() 
{ 
    NameValueCollection nvc = HttpUtility.ParseQueryString(Request.RequestUri.Query); 
    var assessmentId = nvc["aid"]; 

    // TODO: you might need to adjust the property names of your model accordingly 
    // Also if the assessmentId property is an integer on your model type 
    // you will need to parse the value you read from the request to an integer 
    // using the int.Parse method 
    return db.tblAsset.Where(a => a.assessmentId == assessmentId); 
} 
+0

감사합니다! 그게 효과가 있었어! 그리고 네, 그것은 간단했고 나는 밀집되어있었습니다. – Majkeli

관련 문제