نحوهی صحیح فراخوانی SQL Aggregate Functions حین استفاده از LINQ - قسمت دوم
چهارشنبه 26 تیر 1392نحوهی صحیح فراخوانی SQL Aggregate Functions حین استفاده از LINQ - قسمت دوم <br/> در قسمت قبل در مورد حالتی که کوئری انجام شده نتیجهای را بر نگردانده است، بحث شد. در این قسمت یکی از شایعترین مشکلات حین کار با تابع Sum بررسی خواهد شد.
در قسمت قبل
در مورد حالتی که کوئری انجام شده نتیجهای را بر نگردانده است، بحث شد.
در این قسمت یکی از شایعترین مشکلات حین کار با تابع Sum بررسی خواهد شد.
ابتدا جدول ساده Transactions را با دو فیلد Id و Amount مطابق تصویر زیر در نظر بگیرید:
تعدادی رکورد در این جدول ثبت شدهاند. اکنون میخواهیم جمع آنها را محاسبه کنیم:
همانطور که ملاحظه مینمائید این عملیات میسر نیست، زیرا حاصل نهایی فراتر از بازهی تعریف شدهی Int32 است.
برای
رفع این مشکل باید Amount را تبدیل به BigInt (برای مثال مرتبط با
نگارشهای مختلف SQL Server) کرد. مطابق توضیحات قسمت قبل، این عملیات
casting باید به lambda expression تعریف شده اعمال گردد، زیرا خروجی Sum
بر مبنای آن تعیین میگردد.
در این حالت خروجی SQL آن نیز به صورت زیر در خواهد آمد:
هر چند این مباحث ساده به نظر میرسند ولی در صورت عدم رعایت سبب سرخ و سفید شدن در هنگام مقتضی خواهند گردید.
- SQL Server
- 2k بازدید
- 0 تشکر