मैंने कुछ इकाई फ्रेमवर्क कोड पर नियंत्रण लिया है और मैं इसे पुनः प्रतिक्रिया देने के लिए देख रहा हूं। ऐसा करने से पहले, मैं देखना चाहता हूं कि मेरे विचार सही हैं और मुझे चीजों को करने का इकाई-ढांचा तरीका नहीं है।डाटा लेयर रीफैक्टरिंग
उदाहरण 1 - Subquery बनाम जुड़ें
यहाँ हम एक एक-से-कई के रूप में और बी एस के बीच। नीचे दिए गए कोड के अलावा पढ़ने के लिए मुश्किल है, क्या यह भी अक्षम है?
from a in dataContext.As
where ((from b in dataContext.Bs
where b.Text.StartsWith(searchText)
select b.AId).Distinct()).Contains(a.Id)
select a
क्या यह बेहतर होगा, उदाहरण के लिए, इसमें शामिल होने और ऐसा कुछ करने के लिए बेहतर होगा? एक एक-से-कई के रूप में और बी एस और एक एक-से-कई बी एस और सी के बीच के बीच स्पष्ट शामिल नेविगेशन बनाम
यहाँ हम है -
from a in dataContext.As
where a.Bs.Any(b => b.Text.StartsWith(searchText))
select a
उदाहरण 2।
from a in dataContext.As
join b in dataContext.Bs on b.AId equals a.Id
join c in dataContext.Cs on c.BId equals b.Id
where c.SomeValue equals searchValue
select a
क्या डेटा मॉडल के माध्यम से नेविगेट करने के बजाय स्पष्ट जुड़ने का कोई अच्छा कारण है? उदाहरण के लिए:
from a in dataContext.As
where a.Bs.Any(b => b.Cs.Any(c => c.SomeValue == searchValue)
select a
उत्तर देने के लिए समय निकालने के लिए धन्यवाद। – Joey