我正在尝试查询使用两个字段的串联作为另一个表的键的第三方数据库。我尝试使用以下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
我需要做些什么才能让它发挥作用?
答案 0 :(得分:0)
如果您拥有对数据库的控制权。最简单的解决方案可能是添加一个计算值,将2列密钥作为单个列生成,并将其直接与另一个表连接,更像是正确的密钥。如果需要,这还允许您轻松地保留值并为性能目的添加索引(如果SQL Server,不确定其他数据库)。
如果您不喜欢在第三方数据库中更改表的想法,您可以选择将表包装为一个视图,以便程序与表中的计算列分开使用。