ينق الاستعلام عبر ثلاثة مستويات من الجداول لتوليد مبلغ
-
06-07-2019 - |
سؤال
ولدي سلسلة من الجداول التي انضمت مع علاقات المفاتيح الخارجية الابتدائية مفتاح /. لدي جدول المعاملات، ولكل عملية يحيل الى واحد والمنتج واحدا فقط. يمكن أن توجد كل منتج واحد واحد فقط التصنيف:
Categories Products Transactions
------------- ------------- -----------------
CategoryId ProductId TransactionId
CategoryName CategoryId ProductId
ProductName TransactionAmount
وأنا مجرد تعلم LinqToSql، ولقد استعملت تعابير امدا للوصول إلى المنتجات في كل فئة (س => x.Products). ولكن ما أحاول القيام به هو الوصول إلى جدول المعاملات، وتحديدا للحصول على مبلغ من جميع المعاملات حسب الفئة.
وأنا متأكد من أني يمكن أن تفعل ذلك عن طريق إنشاء دليل ينضم في بيان ينق بلدي. ولكن لا يبدو أنني يجب أن يكون للقيام بذلك، حيث يتم انضم كل من الجداول بصفتي PF / FK في النموذج.
ويمكن لأي شخص أن تقدم مثالا على كيفية البدء؟
المحلول
وبدون محاولة ترجمة ذلك، وأنا أعتقد أن هذا سوف تعمل بالطريقة التي تريدها. ويفترض أن يكون لديك الجمعيات التي أقيمت في LINQ إلى سياق البيانات SQL.
var transPerCategory = db.Categories
.Select( c => new {
Name = c.CategoryName,
Amount = c.Products
.Sum( p => p.Transactions
.Sum( t => t.TransactionAmount )
)
});