سؤال

أخلق فئة مجردة يمكن تورثها في فئة جزئية من LinQ إلى فئة SQL. يحتوي LinQ على فئة SQL على مجموعة من الأساليب الجزئية المدمجة. هل هناك طريقة يمكنني تنفيذها واحدة أو أكثر من الأساليب الجزئية في فئة مجردة؟ أعلم أن الأساليب الجزئية لا يمكن توصيلها إلا في فئات أو بنيات جزئية. أنا متأكد من أن هناك طريقة أخرى للقيام بذلك.

هنا مزيد من التفاصيل:

  • قد يكون لدي جدول قاعدة بيانات يسمى الأخبار. إذا قمت بإنشاء ملف LinQ إلى ملف SQL DBML الذي يحتوي على هذا الجدول، فإن التعليمات البرمجية التي تم إنشاؤها تلقائيا يولد فئة جزئية للأخبار.
  • يحتوي هذا الفصل الجزئي على عدة طرق جزئية.
  • لدي فئة أقوم ببناءها تحتوي على العديد من الطرق التي أرغب في استخدامها عبر جميع دروس My LinQ إلى SQL.
  • واحدة من هذه الطرق هي طريقة جزئية تضاف إلى كل LINQ إلى فئة SQL. لدي جسم مشترك لاستخدامه لهذه الطريقة. بدلا من إضافة هذه الطريقة إلى كل فئة جزئية، أبحث عن طريقة لإنشاءها مرة واحدة ورثتها مع ميراث الطبقة الأساسية الخاصة بي.

نأمل أن يساعد في شرح المزيد.

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

المحلول

الطرق الجزئية ليست صالحة للاستعمال على الميراث. يمكنك إضافة أساليب منتظمة إلى فئة قاعدة مجردة، لكنها لن "زوج" تلقائيا مع تصريحات الأسلوب الجزئي. لذلك: لا. يمكنك، بالطبع، ببساطة استدعاء تنفيذ الطريقة الجزئية في الفئة الأساسية.

لاحظ أيضا أنه إذا يتعلق الكود المشترك بأشياء مثل التدقيق (WHO / متى)، يمكنك أيضا القيام بذلك عن طريق تجاوز DataContextSubmitChanges الطريقة، والاتصال GetChangeSet:

    public override void SubmitChanges(ConflictMode failureMode)
    {
        ChangeSet delta = GetChangeSet();
        //... use delta.Updates, delta.Inserts and delta.Deletes
        base.SubmitChanges(failureMode);
    }

أخيرا، لاحظ أنه يمكنك أيضا تحديد فئة أساسية مشتركة لجميع كياناتك في DBML (مثل ذلك) ليس عليك القيام بذلك باليد في كل فئة جزئية.

نصائح أخرى

أعتقد أنني أفهم ما تريد القيام به، ولكن إذا لم يكن كذلك، فأعلمني بذلك. يمكنك جعل الطبقة الأساسية المجردة الخاصة بك جزئيا وسحب التنفيذ الذي تريده في تلك الفئة. بدلا من ذلك، يمكنك أن تأخذ فئة مجردة وتغليف الوظيفة التي تريد فئات أطفالك إمكانية الوصول إليها.

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