加入表格多个条件 - 比较日期 - Linq

时间:2010-01-21 19:21:27

标签: linq-to-sql join multiple-conditions

我正在尝试基于多个条件对两个表进行连接,问题是我无法比较日期字段。日期以日期时间格式存储在DB中,我想要特定日期的所有记录,当我执行此操作时,如下面的代码所示,我得到此异常..方法'System.String ToShortDateString()'不支持转换为SQL。

P.S这是一个大问题的一部分..

    string dt = "10/14/2009";    


 using (ReportGeneratorDataContext db = new ReportGeneratorDataContext())
        {
            var r = from f in db.f
                    join a in db.a
                    on new { x = f.ID, y = f.date.ToShortDateString() } equals new { x = a.ID, y = dt }
                    select f.Name;
        }

有任何变通方法吗?

1 个答案:

答案 0 :(得分:0)

我会尝试

  • 使用自己的Linq to SQL映射在数据库中定义视图
  • 定义表a的计算列(在表格或视图中),其中包含转换为日期的字符串(在数据库端...)
  • 在数据库外部进行连接(即获取完整的交叉连接并在此枚举上执行where

我知道,这些选项中没有一个真的令人满意,但我想这是Linq-To-Sql的错误......