You need to look at two things:
1) What
dc.PROC_getAppointmentRules
actually returns.
And
2) What
PROC_getAppointmentRulesResult
is compared with the return type you declared your method as having.
But why are you doing that at all?
from x in dc.PROC_getAppointmentRules() select x
is the same as calling dc.PROC_getAppointmentRules and casting the result as an IEnumerable. Which it has to be already in order to use it as a Linq source...so what use is this code?