Ste*_*eve 6 sql linq entities join dayofweek
想象一下两张桌子:Shifts,RANK_S_DAY.移位包含一个ShiftDate列,DateTimeRANK_S_DAY有一DayOfWeek列.我需要加入(int)ShiftDate.DayOfWeek equals DayOfWeek.我理解为什么它不起作用,但我不确定如何改变它.例外情况是:
LINQ to Entities不支持指定的类型成员'DayOfWeek'.仅支持初始值设定项,实体成员和实体导航属性.
据我了解,LINQ无法转化(int)ShiftDate.DayOfWeek为SQL理解的东西,任何想法?
这是代码:
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;
Run Code Online (Sandbox Code Playgroud)
Len*_*rri 17
LINQ to SQL
var dayOfWeekCondition = (dt => dt.DayOfWeek == dayOfWeek);
Run Code Online (Sandbox Code Playgroud)
LINQ to Entities
int dow = (int)dayOfWeek + 1; // SQL Day of week
var dayOfWeekCondition = (dt => SqlFunctions.DatePart(“weekday”, dt) == dow);
Run Code Online (Sandbox Code Playgroud)
资源:
http://blog.abodit.com/2009/07/entity-framework-in-net-4-0/
看来我在这个级别已经无能为力了。因此,我所做的就是创建一个存储过程,该存储过程连接两个表并将其导入到实体中,创建一个返回 Shifts 实体的函数导入。不确定这是否是最好的方法,但它有效并且干净。