outranobraino
New Member
I am creating an API using the release version of Asp.Net Web Api. I am trying to pass back the correct response code (404) if no results are found. First Get Version (throws multiple enumeration error):\[code\]public IEnumerable<MyObjectType> Get(int id, string format){ var db = new DbEntities(); var result = db.pr_ApiSelectMyObjectType(store, id, format).AsEnumerable(); if (result.Any()) { return result; } var response = new HttpResponseMessage(HttpStatusCode.NotFound) { Content = new StringContent("Unable to find any results") }; throw new HttpResponseException(response);}\[/code\]Second Get Version (result is never null, so it always returns 200): \[code\]public IEnumerable<MyObject> Get(int id, string format){ var db = new DbEntities(); var result = db.pr_ApiSelectMyObjectType(store, id, format); if (result == null) { var response = new HttpResponseMessage(HttpStatusCode.NoContent) { Content = new StringContent("Unable to find any results") }; throw new HttpResponseException(response); } return result.AsEnumerable();}\[/code\]How do I pass back a 404 if no results are found? I know I could use a list, but I have a custom csv media type formatter that only works with IEnumerable types, so I would prefer to stick with that.