2013-05-11 4 views
7

मैं इकाई फ्रेमवर्क क्वेरीज के लिए कुछ परीक्षण केस बनाना चाहता हूं जो निश्चित रूप से SQL आदेश उत्पन्न करते हैं जिसमें क्रॉस लागू या आउटपुट ऑपरेटर शामिल होते हैं।इकाई फ्रेमवर्क और क्रॉस/आउटर लागू

कोई व्यक्ति विशिष्ट परिदृश्य दिखा सकता है जहां इस प्रकार के SQL प्रश्न प्रकट होते हैं?

उत्तर

9

LINQ 2 एसक्यूएल में यह हमेशा एक APPLY में परिणाम:

from t1 in tab1 
from t2 in tab2.Where(t2 => t2.SomeCol == t1.SomeCol).Take(1) 
select new { t1, t2 } 

एफई में यह या तो असफल हो जायेगी, या भी एक APPLY में परिणाम (मैं नहीं जानता कि जो एक)। यह सहसंबंधित में शामिल है जिसके लिए SQL पक्ष पर APPLY आवश्यक है।

+3

के लिए बाहरी आवेदन का समर्थन नहीं करता है! यह मुझे एक क्रॉस आवेदन क्वेरी देता है। इसके अलावा यदि मैं टेक (2) का उपयोग करता हूं। डीफॉल्ट IfEmpty() तो एक बाहरी आवेदन क्वेरी बनाई गई है। – tamasf

3

कुछ इस तरह एक बाहरी उत्पन्न होगा लागू होते हैं:

var ListLocation = from d in dc.Department        
         select new DepartmentViewModel() 
         { 
          LocationID = d.LocationID, 
          ManagerName = d.Managers.FirstOrDefault(p => p.ManagerId == id).Name 

          }; 

यह आप हमेशा अपनी खुद की क्वेरी पारित कर सकते हैं काम नहीं करता है आप एफई उपयोग कर रहे हैं:

var q2 = context.Departments.SqlQuery("Select ..."); 

कि हालांकि याद रखें आपके प्रदाता को SQL Server 2005 और उच्चतर होना चाहिए, ईएफ ओरेकल

संबंधित मुद्दे