سؤال

باستخدام LINQ إلى SQL، لدي فئة Order مع مجموعة من OrderDetails.تحتوي تفاصيل الطلب على خاصية تسمى LineTotal والتي تحصل على Qnty x ItemPrice.

أعرف كيفية إجراء استعلام LINQ جديد لقاعدة البيانات للعثور على إجمالي الطلب، ولكن نظرًا لأن لدي بالفعل مجموعة OrderDetails من قاعدة البيانات، فهل هناك طريقة بسيطة لإرجاع مجموع LineTotal مباشرة من المجموعة؟

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

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

المحلول

يمكنك تنفيذ LINQ للكائنات واستخدام LINQ لحساب الإجماليات:

decimal sumLineTotal = (from od in orderdetailscollection
select od.LineTotal).Sum();

يمكنك أيضًا استخدام تعبيرات لامدا للقيام بذلك، وهي "أنظف" قليلاً.

decimal sumLineTotal = orderdetailscollection.Sum(od => od.LineTotal);

يمكنك بعد ذلك ربط هذا بفئة الطلب الخاصة بك مثل هذا إذا كنت تريد:

Public Partial Class Order {
  ...
  Public Decimal LineTotal {
    get {
      return orderdetailscollection.Sum(od => od.LineTotal);
    }
  }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top