2016-04-01 7 views
0

Я получаю довольно отчаянный здесь, так как этот код работал до того, как у меня возникли некоторые неприятные проблемы с git, и мне пришлось снова стереть мой проект и проверку. По какой-то причине мои объекты IQueryable больше не позволяют мне ссылаться на свойства. В моем коде ниже evt.id должен быть действительным, но id не распознается как свойство evt в Visual Studio. Кроме того, я должен упомянуть, что я не могу получить доступ не только к evt, но также не могу получить доступ к каким-либо свойствам, принадлежащим цели. Все, что я пропустил при перекодировании этой части моего контроллера?Свойство события, которое не распознается в моем контроллере веб-API

public HttpResponseMessage GetTodaysPatientGoals(int id) 
    { 
     var evt = db.patient_event.Where(e => (e.patient_id == id) && (e.date == DateTime.Today)); 

     //evt.id is not recognized here either 
     if(evt != null) 
     { 
      //evt.id is not recognized as a property of evt here 
      //also cant access properties of goal either 
      var goal = db.patient_goals.Where(g => (g.patient_id == id) && (g.event_id == evt.id)).Select(row => (new { row.id, row.completed, row.goal })); 
      return Request.CreateResponse(HttpStatusCode.OK, goal); 
     } 

     return Request.CreateResponse(HttpStatusCode.NoContent); 
    } 

Любая помощь была бы принята с благодарностью.

+0

Что подразумевается под 'не recognized'? Вы получаете журнал исключений/консолей? – rt2800

+0

Да, я получаю исключение Тяжесть \t Код \t Описание \t Проект \t файла \t Line \t Подавление Государственный Ошибка \t CS1061 \t «IQueryable » не содержит определение для «ид», а метод расширения «ид» можно принять первый аргумент типа «IQueryable » (вам не хватает директивы using или ссылки на сборку?) \t SpectrumWebApp \t C: \ Projects \ SpectrumWebApp \ SpectrumWebApp \ SpectrumWebApp \ Controllers \ patient_goalsController.cs Active – user3704351

+0

Можете ли вы опубликовать исключение/stacktrace на свой вопрос? –

ответ

0

ПОЛУЧИТЬ еф OBJ таким образом,

var evt = db.patient_event.Where(e => (e.patient_id == id) && (e.date == DateTime.Today)).FirstOrDefault(); 
0

Когда вы

var evt = db.patient_event.Where(e => (e.patient_id == id) && (e.date == DateTime.Today)); 

ваш evt будет IEnumerable<T>, где T является то, что в db.patient_event. То есть, ваш evt - это коллекция событий, и эта коллекция не имеет свойства id. Вам нужно будет выбрать конкретное событие, прежде чем вы сможете добраться до объекта id. Например

var myEvent = evt.First(); 
Console.WriteLine(myEvent.id);