所以我有一个从我试图为其编写集成测试的API调用的SQL查询。我有准备数据完全正常工作的方法,但我意识到我不知道如何实际执行查询以检查数据(并运行测试)。以下是查询的外观(稍微修改以保护可信数据):
SELECT HeaderQuery.[headerid],
kaq.[applicationname],
HeaderQuery.[usersession],
HeaderQuery.[username],
HeaderQuery.[referringurl],
HeaderQuery.[route],
HeaderQuery.[method],
HeaderQuery.[logdate],
HeaderQuery.[logtype],
HeaderQuery.[statuscode],
HeaderQuery.[statusdescription],
DetailQuery.[detailid],
DetailQuery.[name],
DetailQuery.[value]
FROM [DATABASE1].[dbo].[apilogheader] HeaderQuery
LEFT JOIN [DATABASE1].[dbo].[apilogdetails] DetailQuery
ON HeaderQuery.[headerid] = DetailQuery.[headerid]
INNER JOIN [DATABASE2].[dbo].[apps] kaq
ON HeaderQuery.[applicationid] = kaq.[applicationid]
WHERE HeaderQuery.[applicationid] = @applicationid1
AND HeaderQuery.[logdate] >= @logdate2
AND HeaderQuery.[logdate] <= @logdate3
为了测试,并且考虑到我已经有了SQL脚本,我希望能够使用context.Database.SqlQuery<string>(QUERY)
执行上面的脚本(以编程方式提供where子句),但因为我有两个不同的上下文,我不知道该怎么做。
答案 0 :(得分:2)
简短的回答是否定的,EF不支持跨数据库查询。但是你可以尝试一些事情。
之前我有过这个要求,并且个人喜欢视图选项。