是否可以使用连接两个数据库之间的三个表的EntityFramework运行SQL查询?

时间:2016-04-06 18:18:13

标签: entity-framework

所以我有一个从我试图为其编写集成测试的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子句),但因为我有两个不同的上下文,我不知道该怎么做。

1 个答案:

答案 0 :(得分:2)

简短的回答是否定的,EF不支持跨数据库查询。但是你可以尝试一些事情。

之前我有过这个要求,并且个人喜欢视图选项。