2016-04-06 7 views
0

Bu yüzden, bir tümleştirme sınaması yazmaya çalıştığım bir API'den çağrılan bir SQL sorgum var. Verileri tamamen çalıştıran bir yönteme sahibim, ancak bu veriyi kontrol etmek için sorguyu gerçekten nasıl yürüteceğimi bilmediğimi anladım (ve testi çalıştırıyorum). Testin uğrunaIki veritabanları arasında üç tabloya katılan bir EntityFramework ile bir SQL sorgusu çalıştırmak mümkün mü?

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 

ve şimdiden SQL komut dosyası var düşünüldüğünde sadece o senaryoyu yürütmek edebilmek umuyordum: Burada sorgu (hafifçe güveneceğiniz verileri korumak için Redacted) neye benzediği Yukarıdaki (context.Database.SqlQuery<string>(QUERY) kullanarak nerede yan tümcesini sağlayan) ancak iki farklı bağlam var, bunu nasıl yapacağından emin değilim.

cevap

2

Kısa cevap hayır, EF çapraz veritabanı sorgularını desteklemiyor. Ancak deneyebileceğiniz birkaç şey var.

  • İki farklı veritabanı bağlamı (her veritabanı için bir tane) kullanabilirsiniz. İlgili sorguları çalıştırın ve sonra sorguyu döndürdikten sonra verileri birleştirin/masaj yapın.
  • Bir veritabanı görünümü oluşturun ve görünümü EF ile sorgulayın. veritabanları aynı sunucuda iseniz, bir DbCommandInterceptor

önce ve bizzat görünüm seçeneği gibi bu gerekliliği yaşadım kullanmayı deneyebilirsiniz eşanlamlı https://rachel53461.wordpress.com/2011/05/22/tricking-ef-to-span-multiple-databases/

  • kullanma
  • .

  • +0

    Yanıt için teşekkürler! Sorguyu yürütmeye bile gerek duymadığımı fark ettim. Bir entegrasyon testi olduğu için, aslında son noktayı aramam gerekiyordu, ancak bu sorunun mümkün olup olmadığını görmek için ayrılacağımı düşündüm. –

    +0

    Sorununuzu çözdüğünüze sevindim. –

    İlgili konular