Это должно быть просто, и я невероятно тупой, но я не могу найти примера, который помог бы мне это понять. Я хочу отфильтровать свой список элементов tblAsset по их assessmentId, который передается через параметр. Я могу получить значение параметра нормально, но не знаю, как написать запрос.

Моя модель построена из существующей базы данных с помощью мастера создания модели.

Спасибо за любую помощь!

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

  //limit the assets by assessmentId somehow and return
}
1
Majkeli 12 Дек 2012 в 20:53
Это не часть вашего вопроса, но вы также можете получить доступ к таким параметрам строки запроса (избавляет вас от необходимости использовать HttpUtility и ручной синтаксический анализ и т.д.) ... IEnumerable GettblAssets ([FromUri] int? AssessmentId = null)
 – 
Mark Jones
13 Дек 2012 в 12:47

1 ответ

Лучший ответ

Вы можете использовать метод расширения .Where для экземпляра IQueryable<tblAsset>, возвращаемого вашей базой данных:

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
Darin Dimitrov 12 Дек 2012 в 21:18
Спасибо! Это сработало! И да, это было просто, и я был тупым.
 – 
Majkeli
12 Дек 2012 в 22:15