انجمن گروه موج سازان
ویرایش رکوردها LINQ - نسخه قابل چاپ

+- انجمن گروه موج سازان (http://www.mojsazan.com/forum)
+-- انجمن: برنامه نویسی تخصصی (http://www.mojsazan.com/forum/forumdisplay.php?fid=31)
+--- انجمن: DataBase (http://www.mojsazan.com/forum/forumdisplay.php?fid=35)
+---- انجمن: LINQ (http://www.mojsazan.com/forum/forumdisplay.php?fid=46)
+---- موضوع: ویرایش رکوردها LINQ (/showthread.php?tid=128)



ویرایش رکوردها LINQ - مهرداد عباسی - 12-16-2009

برای ویرایش رکوردها ابتدا باید رکورد مورد نظر را بازیابی کنیم و سپس اطلاعات موجود در آن را تغییر دهیم و سپس با استفاده از فراخوانی متد ()SubmitChanges تغییرات را به پایگاه داده ارسال کرد. در اینجا یکی دیگر از مزیت­های LINQ مورد استفاده قرار می­گیرد. در LINQ سرویسی به نام سرویس پیگیری تغییرات وجود دارد؛ با استفاده از این سرویس تغییرات اعمال شده بر روی داده­ها پیگری می­شود. اگر متد ()SubmitChanges فراخوانی شود و این در حال باشد که در اطلاعات موجود تغییری داده نشده باشد، LINQ از ایجاد دستور Update و ارسال برای پایگاه داده خودداری می­کنید.

در تکه برنامه زیر ابتدا رکوردی بازیابی شده و سپس مقدار خصوصیات آن تغییر می­کند. در انتها با فراخوانی متد ()SubmitChanges تغییرات به پایگاه داده اعمال
کد پی‌اچ‌پی:
می­گردد.

 public 
String connString = @"Server=.;database=People;integrated security=sspi";

PeopleDataContext people = new PeopleDataContext(connString);

 var 
person people.People.Single(=> p.ID == 1);

personFirstName="A";

personLastName="A";

people.SubmitChanges(); 



با اجرای برنامه مقادیر فیلدهای نام و نام خانوادگی فردی که شماره شناسایی وی برابر 1 می­باشد به A تغییر پیدا کرده و با فراخوانی متد ()SubmiyChanges دستور مناسبی تولید شده و برای پایگاه داده ارسال می­گردد. حال اگر دوباره برنامه را اجرا کنیم با توجه به اینکه تغییری در اطلاعات حاصل نمی­شود بنابراین دستوری برای ارسال به پایگاه داده ایجاد نمی­شود.

منابع مورد استفاده :

· کتاب "LINQ در C# 2008" تالیف گروه واژه

· Ebook های موجود در سایت PersiaDevelopers