سؤال

ولدي نموذج البيانات ADO صافي الكيان لقاعدة البيانات الخاصة بي. في هذا النموذج لدي ثلاثة جداول ذات الصلة: "المستخدمون" الجدول يحتوي على معرف المستخدم وغيرها من التفاصيل. "تشغيل" الجدول الذي يحتوي RunId، ApproverId وغيرها من التفاصيل "RunToUser" الذي يحتوي معرف المستخدم وRunId الأعمدة

والعلاقات هي كما يلي: Users.UserId هو واحد لعلاقة واحدة إلى Run.ApproverId User.UserId هو كثير للكثيرين مع RunToUser.UserId Run.RunId هو كثير للكثيرين مع RunToUser.RunId

في الكيان نموذج يمكن التعبير عن هذا جدولين مع 2 علاقات منفصلة. العلاقة واحد واحد الى ووعلاقة كثير لكثير بين المستخدمين وتشغيل.

ولدي ASP.net Formview حيث أريد لتحرير البيانات في تشغيل وكذلك البيانات ذات الصلة في المستخدمين.

وربط البيانات وتعمل في معظم الحالات. ولكن عندما ربط الجدول المستخدمين باعتبارها entitydatasource دائما يستخدم رابطة علاقة واحد الى واحد.

وكيف يمكنني إجبار entitydatasource لاستخدام رابطة علاقة محددة حتى أستطيع أن ربط البيانات من تعيين واحد الى واحد إلى تسمية وكثير لكثير لdataview؟

وحاولت "موجود" في شرط حيث whichs يحد من السجلات لكنها لا تزال تصر على استخدام دائما واحد واحد الى وويعرض فقط للمستخدم واحد في جميع الضوابط ربط بيانات. هنا هو entitydatasource للمستخدمين:

  <asp:EntityDataSource ID="edsUsers_DET" runat="server" 
        ConnectionString="name=MyEntities" DefaultContainerName="MyEntities" 
        EntitySetName="Users" 
        Where="EXISTS(SELECT VALUE p FROM it.Run AS p WHERE p.RunID = @RunID)" >
        <WhereParameters>
           <asp:ControlParameter ControlID="fvRun"  Name="RunID" Type="Int32" />
        </WhereParameters>        
    </asp:EntityDataSource>

وأفترض أنني سوف تحتاج اثنين من مصادر البيانات كيان واحد للتسمية والثانية لgridview ولكن حتى وأنا أعلم تحديد كيفية specifiy جمعية أنا لا أعرف كيفية المضي قدما. شكرا، -J

هل كانت مفيدة؟

المحلول

ومجرد متابعة لأنني وجدت الجواب ونسيت أن إغلاق هذه المسألة.

واكتشفت أن عندما يكون لديك جمعيات متعددة مع الجدول الأجانب نفسه فإنها تكتسب لاحقة رقمية افتراضيا. لذلك، كان جدول تشغيل المستخدمين وجمعية Users1. عند استخدام "تضمين" معلمة لEDS كنت في حاجة لمعرفة أي جمعية لاستخدام أي ليس واضحا حتى نظرتم في نموذج EDS.

وذهبت يعتقد على كل ما عندي من الجمعيات التي سميت الذي كان لاحقات رقمية. له مائدتي تشغيل الآن المستخدمين وجمعية الموافق (بدلا من Users1). وهذا يتيح لي بسهولة فك فيه العلاقات سفينة لتشمل كلا LINQ والأجزاء التعريفي EDS.

إذا أردت أن تشمل كلا من الجمعيات لEDS أود أن تفعل شيئا مثل:

Include="Users,Approver"

وآمل أن يساعد هذا شخص آخر لأنه لم يكن واضحا جدا بالنسبة لي في البداية.

نصائح أخرى

إذا كان لديك علاقة واحد الى واحد في قاعدة البيانات الخاصة بك، يمكنك بناء نموذج الكيان الخاص بحيث هذين الجدولين تظهر كجدول واحد في نموذج الكيان الخاص بك.

إذا كنت بناء عليه مثل هذا الربط الخاص بك وتصبح أبسط من ذلك بكثير.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top