【问题标题】:Linq: How to join tables on keys with different typeLinq:如何在不同类型的键上连接表
【发布时间】:2015-01-23 09:25:41
【问题描述】:

我需要编写一个 LINQ 查询,在不同类型的键上连接两个表 t1 和 t2。 表 t2 的键 (KeyB) 是字符串,表 t1 的键 (KeyA) 很长。

我正在尝试以下方法,但它给出了一个例外:

方法'System.String StringConvert(System.Nullable`1[System.Double])' 没有支持的 SQL 转换

...
join t2 in table2 on SqlFunctions.StringConvert((double)t1.KeyA).Trim() equals t2.KeyB

这样做的正确方法是什么?

【问题讨论】:

  • 你为什么不在t1.KeyA上使用.ToString()
  • 它是实体框架。
  • ToString() 在 LINQ 中不受支持
  • 那么确保你using right SqlFunctions
  • 看过那个帖子。我正在连接 MySQL。

标签: c# mysql linq entity-framework


【解决方案1】:

使用Convert.ToString(Your long value),它会被翻译成SQL JOIN子句。

Table1.Join(Table2, x => Convert.ToString(x.KeyA),  y =>  y.KeyB,
                    (x, y) => new { x,y })
                .ToList()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-16
    • 2018-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多