想象两个表:Shifts,RANK_S_DAY。Shifts包含一个ShiftDate列,DateTime而RANK_S_DAY包含一个DayOfWeek列。我需要加入(int)ShiftDate.DayOfWeek equals DayOfWeek。我知道为什么它不起作用,但是我不太确定如何更改它。例外是:
DateTime
DayOfWeek
(int)ShiftDate.DayOfWeek equals DayOfWeek
LINQ to Entities不支持指定的类型成员’DayOfWeek’。仅支持初始化程序,实体成员和实体导航属性。
据我了解,LINQ无法转换(int)ShiftDate.DayOfWeek为SQL可以理解的东西,有什么想法吗?
(int)ShiftDate.DayOfWeek
这是代码:
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;
看来在这个级别上我无能为力。因此,我要做的是创建一个存储过程,该过程将两个表连接在一起并将其导入到Entity中,创建了一个函数导入,该函数返回了一个Shifts实体。不知道这是否是最好的方法,但是它可行且干净。