سؤال

افترض أن لدي كائن موظف بالخصائص التالية:

string Name { get; }
float Hours { get; }
float Wage { get; }

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

هل هناك طريقة قياسية EF لتنفيذ هذا دون ممارسة مشكلة في تعيينها إلى كيان قاعدة بيانات؟

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

المحلول

في الواقع. إنشاء ملف منفصل، على سبيل المثال، الموظف الوظيفي.cs..

في هذا الملف، ضع التعليمات البرمجية التالية:

public partial class Employee
{
    public decimal Salary
    {
        get { return Hours * Wage; }
    }
}

يتم إنشاء LINQ إلى فئات SQL و Formity Framework جزئي الكلمة الرئيسية للسماح لك بتقسيم التعريف عبر العديد من الملفات، لأن المصممين عرفوا أنك سترغب في إضافة أعضاء إلى الفصل غير الكتابة فوقه بواسطة ملف المصدر الأساسي باستمرار.

نصائح أخرى

إذا كنت أتذكر بشكل صحيح الفصول التي تم إنشاؤها بواسطة EF جزئيا. حتى تتمكن من إضافة ملف آخر يحتوي على فئة جزئية أخرى (نفس مساحة الاسم، نفس اسم الفئة بالطبع) والتي تنفذ الخاصية

public single Salary
{
   get
   {
       return this.Hours * this.Wage;
   }
}

يجب أن تفعل الخدعة (إذا كانت هذه الفردي ليست غير قابلة للذهول، مانع لك!)

لم أكن قادرا على الحصول على إجابة "Argo" للعمل في البداية. بعد اللعب قليلا حول، لاحظت أنه إذا قمت بديكور العقار (كما هو الحال في WCF)، فإن السمة التالية، كلها تعمل بشكل جيد.

[global::System.Runtime.Serialization.DataMemberAttribute()]

وفقا لتعليمات "Argo" إنشاء ملف منفصل، (على سبيل المثال الموظفين ExpecteExtension.cs). يجب تمييز هذا جزئيا كما هو موضح.

في هذا الملف، ضع التعليمات البرمجية التالية:

public partial class Employee 
{
   [global::System.Runtime.Serialization.DataMemberAttribute()]       
   public decimal Salary     
   { 
      get { return Hours*Wage; } 
   } 
}  

أتمنى أن يساعدك هذا….

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

public partial class Employee {
  public Single Salary {
    get { return Hours*Wage; }
  }
}

هذا لم يكن يعمل بالنسبة لي مع إطار الكيان 5. كان الحل بالنسبة لي هو ببساطة استخدام السمة [غير المستفادة]. لمزيد من المعلومات نرى كود البيانات الأولى

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