LINQ to Entities Join on DateTime.DayOfWeek

Imagine dos tablas: Turnos, RANK_S_DAY. Shifts contiene una columna ShiftDate que esDateTime y RANK_S_DAY tiene unDayOfWeek columna. Necesito unirme(int)ShiftDate.DayOfWeek equals DayOfWeek. Entiendo por qué no funcionará, pero no estoy muy seguro de cómo puedo cambiarlo. La excepción es:

El miembro de tipo especificado 'DayOfWeek' no es compatible con LINQ to Entities. Solo se admiten inicializadores, miembros de la entidad y propiedades de navegación de la entidad.

Según tengo entendido, LINQ no puede traducir(int)ShiftDate.DayOfWeek a algo que SQL entiende, ¿alguna idea?

Aquí está el código:

Shifts = from s in en.Shifts
join j in en.RANK_S_JOB on s.kronos_JobPositions.JobID equals j.JOBNO
join d in en.RANK_S_DAY on (int)s.ShiftDate.DayOFWeek equals d.DAY_OF_WEEK
orderby
 d.RANK,
 j.RANK ascending
select s;

Respuestas a la pregunta(4)

Su respuesta a la pregunta