As the expression past to a LINQ to Entities query is run on the DB you've restricted in what you can pass. Since
ToString
is just a method that can do anything there's no way for the DB to guarantee the result.
What you can do if your unfiltered result set isn't too large is to apply the
Where
clause after the expression has been run;
db.RecipientDescriptions.ToList().Where(o =>o.ID.ToString().Contains("67").ToList();
On a more general note I would say that if you have a need to do
contains on a value then that value shouldn't be of type integer.
Hope this helps,
Fredrik