• بررسی چگونکی پیاده سازی TransAction در Entity FrameWork CodeFirst
بررسی چگونکی پیاده سازی TransAction در Entity FrameWork CodeFirst
1395/03/13 - 15:21:03 // MVC 5 & 6 // 1 نظر // 3828 بازدید

در این مقاله به بررسی چگونگی پیاده سازی یک Transaction ساده در روند Insert رکورد به دو جدول در SQL Server خواهیم پرداخت . در ابتدا یک پروژه به نام EF_TransAction_Demp از نوع MVC ایجاد کنید .

بسمه تعالی

بررسی چگونکی پیاده سازی TransAction در Entity FrameWork CodeFirst

در این مقاله به بررسی چگونگی پیاده سازی یک Transaction ساده در روند Insert رکورد به دو جدول در SQL Server خواهیم پرداخت . در ابتدا یک پروژه به نام EF_TransAction_Demp از نوع MVC ایجاد کنید .

در فولدر Model کلاسهای زیر را ایجاد کنید . ابتدا کلاس Product را ایجاد کنید .

مرحله بعدی ایجاد کلاس Category می باشد .

برای داشتن یک DBContext مطابق زیر عمل کنید .

به سراغ تصحیح WebConfig رفته و Connection String را ایجاد کنید .

خوب حالا باید در HomeController در Index Action کدهای لازمه را جهت داشتن یک TransAction ایجاد نماییم.

این تکه کد باید محتوای Index Action شما باشد . در بخش اول Category مقدار دهی خواهد شد و سپس با استفاده از متد Add به Categories اضافه خواهد شد . با صدا زده شدن SaveChanges این رکورد به صورت کامل اقزوده خواهد شد . در مرحله بعدی Product هم ایجاد و مقدار دهی شده و پس از آن به مجموعه Products افزوده خواهد شد . متد SaveChanges بعدی سبب افزوده شدن این رکورد شده و متد Commit در Transaction سبب ایجاد و ثبت نهایی خواهد شد . در صورت بروز خطا در بلاک Catch ، کل این دو مرحله RollBack خواهد گردید.

دانلود سورس پروژه

علی کلاهدوزان
معرفی نویسنده : علی کلاهدوزان

سلام بر دوستان ،
شاید رایج است به عنوان پروفایل کاربر ، چند خطی راجع به خودم بنویسم ، ولی وضعیت کاری و سوابق من با یک جستجوی ساده در گوگل مشخص خواهد شد ، لذا سرتان را با مطالب بی مورد به درد نیاورم بهتر است . اگر نکته خاصی لازم بود بدانید در قسمت "ایلیا سافت در یک نگاه" به احتمال زیاد یافت خواهد شد . جزئیات بیشتر را سوال کنید ، آدرس ایمیل Ali@Kolahdoozan.com همیشه جوابگوی شماست .امیدوارم از مطالب سایت استفاده کرده باشید . شاد و پیروز باشید .

امتیاز به مطلب
           
نظرات کاربران
  • ناشناس
    1395/03/13 - 17:39:58

    0
    0
    عذر میخوام من دقیق متوجه نشدم خب چرا به جای استفاده از transaction کلا یه بار متد savechanges رو در انتهای افزودن محصول فراخوانی نکنیم؟
     
    ---------------------------------
     
    پاسخ :
     
    تنها به یک مثال ساده نظر نکنید . گاهی پیش می آید که درمواردی نیاز به این دارید تا نتیجه ی Insert  اول را داشته باشید تا بتوانید با استفاده از مثلن id بوجود آمده در insert در دیگر جداول آن را تاثیر داده و ثبت کنید و ادامه دهید .  
ارسال نظر