我正在使用linq-to-sql这样的查询:
public static List<MyModel> GetData(int TheUserID, DateTime TheDate)
using (MyDataContext TheDC = new MyDataContext())
{
var TheOutput = from a in TheDC.MyTable
where a.UserID == TheUserID
(where a.Date1.Month == TheDate.Month && where a.Date1.Year == TheDate.Year)
OR
(where a.Date2.Month == TheDate.Month && where a.Date2.Year == TheDate.Year)
group a by a.Date1.Date AND by a.Date2.Date into daygroups
select new MyModel{...};
如何编写此代码以使OR和AND语句正常工作?我尝试过||和一个&&到位,但是它不起作用,我陷入了这个查询。
基本上,它应该返回一个月之内的天数列表,在MyModel中,我确实会计算在内。例如,在一个列中,我计算在给定日期设置的约会数量,在另一列中,我计算在同一天参加的约会数量。 Date1是指约会的设置日期,Date2是指约会的约会日期。因此,例如,在2011年3月3日,我设置了4个约会(对于这些约会,Date1是3/11/2011),并且它们被设置为将来的各个日期(Date2)。在同一日期(这次3月3日是Date2),我还参加了过去在其他日期设置的其他约会。
感谢您的任何建议。
最佳答案
using (MyDataContext TheDC = new MylDataContext())
{
var TheOutput = from a in TheDC.MyTable
where a.UserID == TheUserID &&
(a.Date1.Month == TheDate.Month && a.Date1.Year == TheDate.Year)
||
( a.Date2.Month == TheDate.Month && a.Date2.Year == TheDate.Year)
group a by a.Date1.Date AND by a.Date2.Date into daygroups
select new MyModel{...};
尝试删除多余的4个“ where”,然后将OR更改为||。