0

我正在尝试根据多个条件对两个表进行连接,问题是我无法比较日期字段。日期以日期时间格式存储在数据库中,我想要特定日期的所有记录,当我这样做时,如下面的代码所示,我得到这个异常..方法'System.String ToShortDateString()'不支持翻译成 SQL。

PS这是一个大查询的一部分..

    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;
        }

任何解决方法?

4

1 回答 1

0

我会尝试

  • 要么在数据库中定义一个具有自己的 Linq 到 SQL 映射的视图
  • 定义 Table 的计算列(在表中或视图中),a其中包含转换为日期的字符串(在 DB 端 ...)
  • 在数据库外部进行连接(即获取完整的交叉连接并where对此枚举进行操作)

我知道,这些选项都不是真正令人满意的,但我想这是 Linq-To-Sql 的不足之处......

于 2010-01-21T19:40:58.393 回答