के माध्यम से साझा करें


लिंक-एंटिटी एलिमेंट

परिणाम के साथ अतिरिक्त स्तंभ वापस करने के लिए निकाय या लिंक-निकाय से संबंधित तालिका में शामिल होता है. संबंधित तालिकाओं में स्तंभ मानों पर शर्तों को लागू करने के लिए फ़िल्टर तत्वों के साथ भी उपयोग किया जाता है.

FetchXml का उपयोग करके तालिकाओं में शामिल होने का तरीका जानें

उदाहरण

निम्नलिखित उदाहरण विभिन्न प्रकार के संबंधों के साथ उपयोग करते link-entity हुए दिखाते हैं।

कई-से-एक रिश्ता

यह क्वेरी खाता रिकॉर्ड में PrimaryContactId लुकअप स्तंभ के आधार पर खाते और संपर्क तालिकाओं से डेटा देता है:

<fetch>
  <entity name='account'>
    <attribute name='name' />
    <link-entity name='contact'
      from='contactid'
      to='primarycontactid'
      link-type='inner'
      alias='contact'>
      <attribute name='fullname' />
    </link-entity>
  </entity>
</fetch>

एक-से-कई संबंध

यह क्वेरी संपर्क account_primary_contact एक-से-अनेक संबंध के आधार पर संपर्क औरखाता तालिकाओं से डेटा लौटाती है.

<fetch>
  <entity name='contact'>
    <attribute name='fullname' />
    <link-entity name='account' 
     from='primarycontactid' 
     to='contactid' 
     alias='account'>
      <attribute name='name' />
    </link-entity>
  </entity>
</fetch>

कई-से-कई रिश्ते

यह क्वेरी teammembership_association कई-से-कई संबंध का उपयोग करके SystemUser और टीम तालिकाओं से डेटा लौटाती है।

<fetch>
  <entity name='systemuser'>
    <attribute name='fullname' />
    <link-entity name='teammembership'
      from='systemuserid'
      to='systemuserid' >
      <link-entity name='team'
        from='teamid'
        to='teamid'
        link-type='inner'
        alias='team'>
        <attribute name='name' />
      </link-entity>
    </link-entity>
  </entity>
</fetch>

विशेषताएँ

नाम आवश्यक? विवरण
name हां संबंधित तालिका का तार्किक नाम.
to नहीं विशेषता में निर्दिष्ट from संबंधित तालिका स्तंभ से मेल खाने के लिए पैरेंट तत्व में स्तंभ का तार्किक नाम. जबकि तकनीकी रूप से आवश्यक नहीं है, आमतौर पर इस विशेषता का उपयोग किया जाता है।
from नहीं संबंधित तालिका से स्तंभ का तार्किक नाम जो विशेषता में निर्दिष्ट to स्तंभ से मेल खाता है. जबकि तकनीकी रूप से आवश्यक नहीं है, आमतौर पर इस विशेषता का उपयोग किया जाता है।
alias नहीं संबंधित तालिका के नाम का प्रतिनिधित्व करता है। यदि आप कोई उपनाम सेट नहीं करते हैं, तो आपके लिए यह सुनिश्चित करने के लिए एक उपनाम जनरेट किया जाएगा कि सभी स्तंभों में अद्वितीय नाम हैं, लेकिन आप XML प्राप्त करने के अन्य भागों में लिंक निकाय को संदर्भित करने के लिए उस उपनाम का उपयोग नहीं कर पाएंगे. ऑटो-जेनरेट किए गए उपनाम पैटर्न {LogicalName}+{N}का उपयोग करते हैं, जहां N 1 से शुरू होने वाले XML में लिंक-इकाई की अनुक्रमिक संख्या है।
link-type नहीं लिंक उपयोग का प्रकार. डिफ़ॉल्ट व्यवहार आंतरिक है। लिंक-प्रकार विकल्पों के बारे में जानें
intersect नहीं इंगित करता है कि तालिकाओं में link-entity शामिल होने के लिए उपयोग किया जाता है और किसी भी कॉलम को वापस नहीं किया जाता है, आमतौर पर कई-से-कई संबंध के लिए। इस विशेषता का अस्तित्व क्वेरी निष्पादन को नहीं बदलता है। जब आप किसी तालिका में शामिल होते हैं, तो आप इस विशेषता को अपने साथ link-entity जोड़ सकते हैं, लेकिन यह दिखाने के लिए कोई विशेषता तत्व शामिल न करें कि यह जानबूझकर किया गया है.

उपयोग और from विशेषताएँ to

दोनों और from विशेषताओं to के लिए मान निर्धारित करना सबसे अच्छा है। इन दोनों विशेषताओं का उपयोग आमतौर पर मिलान करने के लिए स्तंभों को स्पष्ट रूप से परिभाषित करने के लिए किया जाता है। हालाँकि, from और विशेषताओं to की तकनीकी रूप से आवश्यकता नहीं है।

नोट

  • यह महत्वपूर्ण है कि और विशेषताओं to में निर्दिष्ट from कॉलम एक ही प्रकार के हों। विभिन्न स्तंभ प्रकारों का उपयोग करना समर्थित नहीं है. जब कॉलम एक ही प्रकार के नहीं होते हैं, तो Dataverse संरचना रूपांतरण को बाध्य करने में सक्षम हो सकती है, लेकिन इस अभ्यास के परिणामस्वरूप एक महत्वपूर्ण प्रदर्शन दंड हो सकता है।

  • FetchXml में और विशेषताओं का अर्थ संबंधित LinkEntity.LinkFromAttributeName और LinkEntity.LinkToAttributeName गुणों के विपरीत है जिनका उपयोग QueryExpression का उपयोग करके क्वेरीज़ लिखते समय किया जाता है.tofrom

यदि आप इनमें से किसी भी विशेषता का उपयोग नहीं करते हैं, और दो तालिकाओं के बीच एक सिस्टम कई-से-कई संबंध मौजूद है, तो Dataverse उस संबंध का उपयोग करके उपयुक्त कुंजी मानों का चयन करता है।

यदि आप केवल एक या विशेषताओं to को from निर्दिष्ट करते हैं, तो Dataverse दो तालिकाओं के बीच संबंध स्कीमा परिभाषाओं का उपयोग करके सही संबंध का पता लगाने का प्रयास करता है।

अन्यथा आपको निम्न त्रुटि मिलेगी:

कोड: 0x80041102
संदेश: No system many-to-many relationship exists between <table A> and <table B>. If attempting to link through a custom many-to-many relationship ensure that you provide the from and to attributes.

उदाहरण के लिए, इन क्वेरीज़ के दोनों teammembership_associationसिस्टमयूजर और टीम तालिकाओं के बीच कई से कई संबंध का उपयोग करें। इस मामले में, Dataverse और विशेषताओं to पर काम from कर सकता है और जो link-entity प्रतिच्छेद तालिका को निर्दिष्ट करता है, आवश्यक नहीं है।

सभी विशेषताएँ निर्दिष्ट करें

<fetch top="2">
<entity name="systemuser">
<attribute name="fullname" />
<link-entity
name="teammembership"
from="systemuserid"
to="systemuserid"
intersect="true"
>
<link-entity
name="team"
from="teamid"
to="teamid"
link-type="inner"
alias="team"
>
<attribute name="name" />
</link-entity>
</link-entity>
</entity>
</fetch>

Dataverse को चुनने दें

<fetch top="2">
<entity name="systemuser">
<attribute name="fullname" />
<link-entity name="team" alias="team">
<attribute name="name" />
</link-entity>
</entity>
</fetch>

लौटाए गए रिकॉर्ड पर फ़िल्टर लागू करने के लिए उपयोग करें link-type . निम्न तालिका मान्य link-type मानों का वर्णन करती है:

नाम विवरण
inner चूक। परिणामों को दोनों तालिकाओं में मेल खाने वाले मानों वाली पंक्तियों तक सीमित करता है.
outer इसमें पैरेंट एलिमेंट के ऐसे नतीजे शामिल होते हैं जिनका कोई मेल खाने वाला मान नहीं होता है.
any इसे फ़िल्टर तत्व के भीतर उपयोग करें। लिंक किए गए निकाय में किसी भी मेल खाने वाली पंक्तियों के साथ परिणामों को पैरेंट पंक्तियों तक सीमित करता है. संबंधित तालिकाओं पर मानों को फ़िल्टर करने के लिए उपयोग any करना सीखें
not any इसे फ़िल्टर तत्व के भीतर उपयोग करें। लिंक किए गए निकाय में कोई मेल खाने वाली पंक्तियों के साथ परिणामों को पैरेंट पंक्तियों तक सीमित करता है. संबंधित तालिकाओं पर मानों को फ़िल्टर करने के लिए उपयोग not any करना सीखें
all इसे फ़िल्टर तत्व के भीतर उपयोग करें। परिणामों को पैरेंट पंक्तियों तक सीमित करता है, जहाँ मेल खाने वाले from स्तंभ मान वाली पंक्तियाँ लिंक निकाय में मौजूद होती हैं, लेकिन उन मेल खाने वाली पंक्तियों में से कोई भी इस लिंक निकाय के लिए निर्धारित अतिरिक्त फ़िल्टर को संतुष्ट नहीं करती है. आपको पैरेंट पंक्तियों को खोजने के लिए अतिरिक्त फ़िल्टर को उलटना होगा जहाँ प्रत्येक मेल खाने वाली लिंक निकाय पंक्ति कुछ अतिरिक्त मानदंडों को पूरा करती है. संबंधित तालिकाओं पर मानों को फ़िल्टर करने के लिए उपयोग all करना सीखें
not all इसे फ़िल्टर तत्व के भीतर उपयोग करें। लिंक किए गए निकाय में किसी भी मेल खाने वाली पंक्तियों के साथ परिणामों को पैरेंट पंक्तियों तक सीमित करता है. यह लिंक प्रकार नाम के any बावजूद बराबर है। संबंधित तालिकाओं पर मानों को फ़िल्टर करने के लिए उपयोग not all करना सीखें
exists इसका एक प्रकार inner प्रदर्शन लाभ प्रदान कर सकता है। खंड में where एक EXISTS शर्त का उपयोग करता है। इसका उपयोग तब करें जब परिणामों में मूल पंक्ति की एकाधिक प्रतियां आवश्यक न हों। मौजूद और में के बारे में अधिक जानें
in इसका एक प्रकार inner प्रदर्शन लाभ प्रदान कर सकता है। खंड में whereIN शर्त का उपयोग करता है। इसका उपयोग तब करें जब परिणामों में मूल पंक्ति की एकाधिक प्रतियां आवश्यक न हों। मौजूद और में के बारे में अधिक जानें
matchfirstrowusingcrossapply इसका एक प्रकार inner प्रदर्शन लाभ प्रदान कर सकता है। इस प्रकार का उपयोग तब करें जब लिंक किए गए निकाय से मेल खाने वाली पंक्ति का केवल एक ही उदाहरण पर्याप्त हो और परिणामों में पैरेंट पंक्ति की एकाधिक प्रतिलिपियाँ आवश्यक न हों. matchfirstrowusingcrossapply के बारे में अधिक जानें

मूल तत्व

नाम विवरण
स्थिति फ़ेच एलिमेंट के लिए चाइल्ड एलिमेंट को निर्दिष्ट करता है, क्वेरी के लिए 'पैरेंट एंटिटी'. केवल एक इकाई की अनुमति है।
लिंक-एंटिटी परिणाम के साथ अधिक स्तंभ लौटाने के लिए निकाय या लिंक-निकाय से संबंधित तालिका में शामिल होता है.

बाल तत्व

नाम आवृत्तियों विवरण
सभी विशेषताएँ 0 या 1 इंगित करता है कि प्रत्येक पंक्ति के लिए सभी गैर-शून्य स्तंभ मान दिए गए हैं. यह किसी भी विशेषता तत्वों को नहीं जोड़ने के समान है। हम ज्यादातर मामलों के लिए इस तत्व का उपयोग करने की अनुशंसा नहीं करते हैं।
लक्षण 0 या कई किसी क्वेरी के साथ वापस जाने के लिए किसी निकाय या लिंक-निकाय से एक स्तंभ निर्दिष्ट करता है.
आदेश 0 या कई परिणामों की पंक्तियों के लिए एक सॉर्ट क्रम निर्दिष्ट करता है।
लिंक-एंटिटी 0 या कई परिणाम के साथ अधिक स्तंभ लौटाने के लिए निकाय या लिंक-निकाय से संबंधित तालिका में शामिल होता है.
छानना 0 या 1 किसी निकाय या लिंक-निकाय के लिए किसी क्वेरी पर लागू करने के लिए जटिल शर्तें निर्दिष्ट करें.