public IEnumerable GetContentItemHeaders(IEnumerable uris, ContentItemHeader.Fields fieldsToGet, int actorSid) { using (var context = new ArticlesDataContext()) { return uris.Select(delegate(Uri u) { var identifier = PrefixUri.MakeRelativeUri(u).ToString(); try { var g = new Guid(identifier); return context.articles.Where(a => a.ID == g).FirstOrDefault(); } catch (FormatException) { return context.articles.Where(a => a.UrlTitle == identifier).FirstOrDefault(); } }) .Where(g => g != null) .Select(g => new ContentItemHeader { ObjectSID=0, SerializedData=GetSerializedArticleHeader(g), Uri= new Uri(PrefixUri, g.UrlTitle) }); } }
(Hint: It manifests as an ObjectDisposedException).
Just out of curiosity, why do you use the anonymous delegate syntax instead of a lambda expression?