0

我正在尝试查询使用两个字段的串联作为另一个表的键的第三方数据库。我尝试使用以下 linq-to-sql 查询,但出现运行时错误 'LINQ to Entities 无法识别方法 'System.String Concat(System.String[])' 方法,并且此方法无法转换为商店表达。'

Dim result = From records In db.TableA
    Join records2 In db.TableB
    On records.FieldA + "*" + records.FieldB Equals records2.KeyField

我需要做什么才能使其正常工作?

4

1 回答 1

0

如果你控制了数据库。最简单的解决方案可能是添加一个计算值,将 2 列键生成为单列,并将其直接与另一个表连接,更像是一个正确的键。如果需要,这还允许您轻松保存值并为性能目的添加索引(如果是 SQL Server,则不确定其他数据库)。

如果您不喜欢更改第三方数据库中的表的想法,您可以选择用视图包装表,以便程序与表中的计算列分开使用。

于 2013-05-23T23:04:44.933 回答