【问题标题】:Join tables multiple conditions - compare dates - Linq连接表多个条件 - 比较日期 - Linq
【发布时间】:2010-01-21 19:21:27
【问题描述】:

我正在尝试根据多个条件对两个表进行联接,问题是我无法比较日期字段。日期以日期时间格式存储在数据库中,我想要特定日期的所有记录,当我这样做时,如下面的代码所示,我得到这个异常..方法'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;
        }

有什么解决方法吗?

【问题讨论】:

  • 什么是dt?它从何而来?是字符串吗?
  • oops.. 是的 dt 是一个字符串。更新了!

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


【解决方案1】:

我会努力的

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

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

【讨论】:

    猜你喜欢
    • 2023-04-01
    • 2013-03-17
    • 1970-01-01
    • 1970-01-01
    • 2021-05-01
    • 1970-01-01
    • 2014-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多