نحوه‌ی صحیح فراخوانی SQL Aggregate Functions حین استفاده از LINQ - قسمت دوم

در قسمت قبل در مورد حالتی که کوئری انجام شده نتیجه‌ای را بر نگردانده است، بحث شد. در این قسمت یکی از شایع‌ترین مشکلات حین کار با تابع Sum بررسی خواهد شد.

ابتدا جدول ساده Transactions را با دو فیلد Id و Amount مطابق تصویر زیر در نظر بگیرید:


تعدادی رکورد در این جدول ثبت شده‌اند. اکنون می‌خواهیم جمع آن‌ها را محاسبه کنیم:


همانطور که ملاحظه می‌نمائید این عملیات میسر نیست، زیرا حاصل نهایی فراتر از بازه‌ی تعریف شده‌ی Int32 است.
برای رفع این مشکل باید Amount را تبدیل به BigInt (برای مثال مرتبط با نگارش‌های مختلف SQL Server) کرد. مطابق توضیحات قسمت قبل، این عملیات casting باید به lambda expression تعریف شده اعمال گردد، زیرا خروجی Sum بر مبنای آن تعیین می‌گردد.



در این حالت خروجی SQL آن نیز به صورت زیر در خواهد آمد:



هر چند این مباحث ساده به نظر می‌رسند ولی در صورت عدم رعایت سبب سرخ و سفید شدن در هنگام مقتضی خواهند گردید.

  • #
    ‫۱۳ سال و ۱۲ ماه قبل، یکشنبه ۲۳ آبان ۱۳۸۹، ساعت ۱۵:۱۸
    با سلام
    مطالب مختصر و مفید بود
    امیدورام به همین روند ادامه بدین
    راستی آقای نصیری یه توضیح کوچولو در مورد Linqpad میدین .
    با تشکر
  • #
    ‫۱۳ سال و ۱۲ ماه قبل، یکشنبه ۲۳ آبان ۱۳۸۹، ساعت ۲۰:۲۲
    LINQPad یک برنامه‌ی نیمه رایگان است. به این معنا که دریافت آن رایگان است، استفاده از آن هیچ محدودیتی ندارد. فقط هنگام نوشتن کوئری‌ها intellisense ظاهر نخواهد شد. این یک مورد رایگان نیست و برای فعال شدن آن باید مقداری هزینه کنید. کیفیت intellisense آن هم قابل مقایسه است با VS.NET و بسیار مطلوب است.
    LINQPad برای تست کردن سریع عبارات LINQ فوق العاده است. با استفاده از آن بدون نیاز به VS.NET خیلی سریع و در عرض چند ثانیه می‌تونید عبارات LINQ خودتون رو نوشته و تست کنید. این LINQ می‌تونه LINQ to Objects باشه یا LINQ to SQL یا LINQ to Entities و غیره.
    خلاصه چیزی شبیه به management studio مخصوص SQL Server را تصور کنید که اینبار بجای SQL نویسی، LINQ می‌نویسید، حاصل را نمایش می‌دهد؛ علاوه بر آن خروجی SQL تولیدی و حتی IL نهایی را هم نمایش می‌دهد که برای دیباگ بسیار مفید است.
    به همراه آن یک سری مثال هم وجود دارد که جهت فراگیری LINQ یا حتی استفاده از آن‌ها به عنوان مرجع بی‌نظیر است.
  • #
    ‫۱۳ سال و ۷ ماه قبل، چهارشنبه ۷ اردیبهشت ۱۳۹۰، ساعت ۱۱:۰۵
    تصاویر ( کدهای ) این مطلب دیده نمی شود ، لطفا اصلاح بفرمایید ، ممنون
  • #
    ‫۱۳ سال و ۷ ماه قبل، چهارشنبه ۷ اردیبهشت ۱۳۹۰، ساعت ۱۲:۴۸
    لطفا فایل خلاصه وبلاگ را از سمت راست، بالای سایت، قسمت گزیده‌ها دریافت کنید. تمام تصاویر در آن موجود است