background:
Этот запрос LINQ в Linqpad (или в VS2010 в этом отношении)
EntityTypes.Where (x => x.EntityUrn == "http://foo")
переводитсяк следующему URI, совместимому с oData:
http://localhost/OData.svc/EntityTypes('http://foo') (это потому, что EntityUrn является ключом сущности ... если мой запрос Linq указывает любое другое поле, вместо него используется синтаксис $ filter)
Проблема состоит в том, что этот URI oData возвращает ошибку из-за ограниченных символов в ключе сущности (см. Blogs.msdn.com/b/peter_qian/archive/2010/05/25/using-wcf-data-service-with-limited-Characters-as-keys.aspx)
Итак, я хочу, чтобы этот запрос LINQ автоматически преобразовывался в эквивалентный URI, соответствующий oData:
http://localhost/OData.svc/EntityTypes?$filter=EntityUrn eq 'http://foo'
Есть предложения, как мне это сделать?