我必须在两个表之间编写 linq to sql server,相关字段的类型不同。一个是 string(nvarchar),另一个是 int。
这是我的 linq:
from je in a
join vP in b
on je.BaseRef equals SqlFunctions.StringConvert((decimal) vP.DocEntry)
sql 中 linq 的结果是:
SELECT
[Extent1].[Account] AS [Account]
FROM [dbo].[a] AS [Extent1]
JOIN [dbo].[b] AS [Extent2] ON ([Extent1].[BaseRef] = (STR( CAST( [Extent2].[DocEntry] AS float)))) OR (([Extent1].[BaseRef] IS NULL) AND (STR( CAST( [Extent2].[DocEntry] AS float)) IS NULL))
该查询返回 null,因为 sql 无法比较 varchar 和 nvarchar。linq to entity 转换sqlfunction.stringFormat
为str('')
而不是convert(nvarchar,'')
。如何转换为 nvarchar?