مشاركة عبر


عنصر كيان الارتباط

ربط جدول مرتبط بالوحدة أو كيان الارتباط لإرجاع أعمدة إضافية بالنتيجة. يستخدم أيضا مع عناصر التصفيةلتطبيق الشروط على قيم الأعمدة في الجداول ذات الصلة.

تعرف على كيفية ربط الجداول باستخدام 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>

علاقة متعدد إلى متعدد

يقوم هذا الاستعلام بإرجاع البيانات من جدولي SystemUserوTeam باستخدام علاقة teammembership_association متعدد إلى متعدد.

<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 مطلوب؟ ‏‏الوصف
name نعم الاسم المنطقي للجدول ذي الصلة.
to لا الاسم المنطقي للعمود في العنصر الأصل لمطابقته مع عمود الجدول ذي الصلة المحدد في السمة from . على الرغم من أن هذه السمة غير مطلوبة تقنيا، عادة ما تستخدم.
from لا الاسم المنطقي للعمود من الجدول المرتبط الذي يطابق العمود المحدد في السمة to . على الرغم من أن هذه السمة غير مطلوبة تقنيا، عادة ما تستخدم.
alias لا يمثل اسم الجدول ذي الصلة. إذا لم تقم بتعيين اسم مستعار، إنشاء اسم لك للتأكد من أن جميع الأعمدة لها أسماء فريدة، ولكن لن تتمكن من استخدام هذا الاسم المستعار للإشارة إلى كيان الارتباط في أجزاء أخرى من إحضار XML. تستخدم الأسماء المستعارة التي تم إنشاؤها تلقائيا النمط {LogicalName}+{N}، حيث N هو العدد التسلسلي للكيان الارتباط في إحضار XML بدءا من 1.
link-type لا نوع استخدام الارتباط. السلوك الافتراضي داخلي. التعرف على خيارات نوع الارتباط
intersect لا يشير إلى أن link-entity يتم استخدام لربط الجداول وعدم إرجاع أي أعمدة، عادة لعلاقة متعدد إلى متعدد. لا يؤدي وجود هذه السمة إلى تغيير تنفيذ الاستعلام. يمكنك إضافة هذه السمة إلى عند الانضمام إلى link-entity جدول ولكن لا تقم بتضمين أي عناصر سمة لإظهار أن هذا مقصود.

to استخدام from والسمات

من الأفضل تعيين قيم لكل من from السمتين و to . عادة ما تستخدم كلتا السمتين لتعريف الأعمدة المراد مطابقتها بشكل صريح. ومع ذلك، from فإن السمتين و to غير مطلوبتين تقنيا.

إشعار

  • من المهم أن تكون الأعمدة المحددة في from السمتين و to من نفس النوع. استخدام أنواع أعمدة مختلفة غير معتمد. عندما لا تكون الأعمدة من نفس النوع، قد تكون البنية الأساسية Dataverse قادرة على فرض التحويل ولكن يمكن أن تؤدي هذه الممارسة إلى عقوبة أداء كبيرة.

  • معنى from السمات و to في FetchXml هي عكس خصائص LinkEntity.LinkFromAttributeName و LinkEntity.LinkToAttributeName المستخدمة عند إنشاء الاستعلامات باستخدام QueryExpression.

إذا لم تستخدم أيا من هذه السمات، وكانت هناك علاقة متعدد إلى متعدد للنظام بين الجدولين، يحدد Dataverse قيم المفتاح المناسبة باستخدام تلك العلاقة.

إذا حددت إحدى from السمات أو to فقط، يحاول 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 متعدد إلى متعدد بين systemuser وجداول الفريق . في هذه الحالة، يمكن أن يعمل Dataverse على from السمات و to ، 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 :

Name ‏‏الوصف
inner الإعداد الافتراضي. يقيد النتائج إلى صفوف ذات قيم مطابقة في كلا الجدولين.
outer يتضمن نتائج من العنصر الأصل الذي لا يحتوي على قيمة مطابقة.
any استخدم هذا ضمن عنصر عامل تصفية. يقيد النتائج على الصفوف الأصلية مع أي صفوف مطابقة في الكيان المرتبط. تعلم كيفية استخدام any لتصفية القيم على الجداول ذات الصلة
not any استخدم هذا ضمن عنصر عامل تصفية. يقيد النتائج على الصفوف الأصلية بدون صفوف مطابقة في الكيان المرتبط. تعلم كيفية استخدام not any لتصفية القيم على الجداول ذات الصلة
all استخدم هذا ضمن عنصر عامل تصفية. يقيد النتائج إلى الصفوف الأصلية حيث توجد صفوف ذات قيمة عمود مطابقة from في كيان الارتباط ولكن لا يفي أي من هذه الصفوف المتطابقة بعوامل التصفية الإضافية المعرفة لكيان الارتباط هذا. تحتاج إلى عكس عوامل التصفية الإضافية للعثور على الصفوف الأصلية حيث يفي كل صف كيان ارتباط مطابق ببعض المعايير الإضافية. تعلم كيفية استخدام all لتصفية القيم على الجداول ذات الصلة
not all استخدم هذا ضمن عنصر عامل تصفية. يقيد النتائج على الصفوف الأصلية مع أي صفوف مطابقة في الكيان المرتبط. هذا النوع من الارتباطات يعادل any على الرغم من الاسم. تعلم كيفية استخدام not all لتصفية القيم على الجداول ذات الصلة
exists يمكن أن يوفر متغير من inner ذلك مزايا الأداء. يستخدم شرط EXISTS في where عبارة . استخدم هذا عندما لا تكون نسخ متعددة من الصف الأصل ضرورية في النتائج. معرفة المزيد حول موجود وفي
in يمكن أن يوفر متغير من inner ذلك مزايا الأداء. يستخدم شرط IN في where عبارة . استخدم هذا عندما لا تكون نسخ متعددة من الصف الأصل ضرورية في النتائج. معرفة المزيد حول موجود وفي
matchfirstrowusingcrossapply يمكن أن يوفر متغير من inner ذلك مزايا الأداء. استخدم هذا النوع عندما يكون مثال واحد فقط لصف مطابق من الكيان المرتبط كافيا ولا يلزم وجود نسخ متعددة من الصف الأصل في النتائج. تعرف على المزيد حول matchfirstrowusingcrossapply

العناصر الأصلية

Name ‏‏الوصف
كيان تحديد العنصر التابع لعنصر إحضار، "الكيان الأصل" للاستعلام. يسمح بوحدة واحدة فقط.
ارتباط الكيان ربط جدول متعلق بالوحدة أو كيان الارتباط لإرجاع المزيد من الأعمدة بالنتيجة.

العناصر التابعة

Name تواجدات ‏‏الوصف
كافة السمات 0 أو 1 يشير إلى إرجاع كافة قيم الأعمدة غير الفارغة لكل صف. وهو نفس عدم إضافة أي عناصر سمة. لا نوصي باستخدام هذا العنصر لمعظم الحالات.
صفة 0 أو العديد تحديد عمود من كيان أو كيان ارتباط لإرجاعه مع استعلام.
ترتيب 0 أو العديد تحديد ترتيب فرز لصفوف النتائج.
ارتباط الكيان 0 أو العديد ربط جدول متعلق بالوحدة أو كيان الارتباط لإرجاع المزيد من الأعمدة بالنتيجة.
راووق 0 أو 1 حدد الشروط المعقدة لكيان أو كيان ارتباط لتطبيقه على استعلام.