मेरे पास 2 टेबल हैं जिनके पास एक दूसरे के लिए एक संबंध जहाज हैमैं इसे एंटिटी फ्रेमवर्क में कैसे कर सकता हूं (एकाधिक कहां है या शामिल हों)?
तालिका ए में तालिका बी के साथ कई संबंध हैं, इसलिए यह प्रत्येक में एक नेविगेशन प्रॉपर्टी बनाता है।
अब मुझे तालिका ए (उपयोगकर्ता नाम) से एक मूल्य की जांच करने की आवश्यकता है और मुझे तालिका बी (ClubId) से एक मूल्य की जांच करने की आवश्यकता है।
तो मेरे मन में यह कुछ की तरह
Join the tables together
Where A.userName == "bob" &&
where B.clubId == "Car"
// return the count.
होगा लेकिन अब मैं इकाई सामान के साथ पता है तो मैं अगर मैं एक में शामिल होने के तो साथ यह कर सकते हैं सोच रहा हूँ यह मिलती है कम आम बनाना चाहिए।
मैं इस
int count = Entity.TableA.where(a => a.userName == "bob" && a.TableB.where(i => i.ClubId == "Car")).Count();
की कोशिश की तो यह काम नहीं करता है, क्योंकि यह सही प्रकार नहीं लौटेगा (2 जहां)। यह ठीक है कि मैंने लाइनों के साथ कैसे सोचा कि मैं इसे कैसे करने की उम्मीद करूंगा, काम करेगा।
तो यह कैसा दिखना चाहिए?
पी.एस
मैं नहीं बल्कि एक उदाहरण Linq विधि प्रश्नों में किया है जैसे मैं ऊपर था। तुम दोनों उपयोगकर्ता और क्लब के तत्वों वापसी चाहते हैं पर क्वेरी के अंदर मिलती है एक नजर है, तो
var usersNamedBobInCarClub =
from A in User
from B in A.Clubs
where A.userName == "bob" &&
B.clubId == "Car"
select A;
:
आह। वाह। मुझे यकीन नहीं है कि मैं अपने मामले में बेहतर क्या पसंद करता हूं। वह चुनने से मुझे बहुत फेंकता है। तो अगर मुझे एक और फिल्टर चाहिए तो क्या होगा? क्या मैं एक और चयन जोड़ूंगा? वैसे पहला तरीका वाक्यविन्यास काम करता है मुझे नहीं पता कि यह आंतरिक रूप से नीचे जाता है और दूसरी बात करता है। सभी प्रश्न एक ही निष्पादन समय लेते हैं। दूसरे में क्या है चुनें कोई भी करता है। जैसे => a.TableB, (ए, बी) =>) क्या है? – chobo2
मैंने क्वेरी अनुवाद में एक फिक्स के साथ पोस्ट को अद्यतन किया है। पहला चयनमनी अनिवार्य रूप से आपके नेस्टेड संग्रह को "फ़्लैटेंस" करता है, जो सभी बी के सभी बी के अनुक्रम को लौटाता है। दूसरा SelectMany दो प्रतिनिधियों को स्वीकार करता है, एक ए और बी को दिए गए रिटर्न वैल्यू को निर्दिष्ट करने के लिए बी के संग्रह को पुनः प्राप्त करने के लिए "संग्रह चयनकर्ता" और "परिणाम चयनकर्ता" को स्वीकार करता है।LINQ बस आपकी शेष क्वेरी में उपयोग के लिए इनपुट ऑब्जेक्ट्स का चयन करता है। – dahlbyk