我正在使用EF 6与Oracle,我正在尝试使用员工编号和日期字段进行多列连接。我无法让LEFT OUTER JOIN正常工作,我很确定这是因为日期。我知道Oracle中的日期可能会非常棘手,我通常必须使用“TO_DATE”函数去掉HH:mm:ss,并且只使用mm/dd/yyyy。但是,我不知道如何使用EF来实现这一点。EF 6与Oracle - 如何加入日期字段?
我试过使用.ToShortDateString去除只有mm/dd/yyyy,但我不得不将它解析回DateTime以便通过以下错误:The type of one of the expressions in the join clause is incorrect. Type interface failed in the call to 'join'。从对该错误的研究看来,我的“reportDate”必须是DateTime类型才能匹配Oracle中的h.REPORT_DATE(DATETIME)字段。将它解析回DateTime的问题是,它变成“mm/dd/yyyy 12:00:00 AM”,并导致数据未加入。
这是一些代码。
DateTime reportDate = DateTime.Parse(DateTime.Today.ToShortDateString());
var data = (from e in db.SAP_EMPLOYEE
join h in db.ABSMGMT_HOURS on new { a = e.EMP, b = reportDate }
equals new { a = h.EMP_ID, b = h.REPORT_DATE}
into t from rt in t.DefaultIfEmpty()
任何人都知道如何使用EF 6和Oracle处理mm/dd/yyyy日期格式?
2016-06-08
Caverman
+0
如果它与EF6 ...'trunc(date)'一起使用,那么您只能在DD/MM/YYYY上进行匹配。没有时间部分。 '当sysdate-2/24 = sysdate then 1 else 0 end时,选择案例trunc(sysdate-2/24)= trunc(sysdate)then 1 else 0从双重截断结束trunc截断时间 –
+0
我知道在SQL我会使用trunc(日期),但如何与EF一起使用? EF没有trunc()作为我可以告诉的函数。 –
+0
'https://social.msdn''var x = myContext.MyTable.Where(i =>(i.MyDateColumn> = DateTime.ToDay)&&(i.MyDateColumn