This is because L2E is simply trying to translate your request to the sql command. Thus, any additional things (methods such as .ToString () and other things that cannot be translated into SQL) result in this exception.
L2S, linq , IEnumerable. , : L2E linq sql, L2O IEnumerable L2S .
, L2S EF ( L2E), DbContext IEnumerable:
var a = db.Table.AsEnumerable().Single(d => d.Date == dates[0]);