PDA

View Full Version : این کد حذف را با EF چطور تغییر بدم که همه رکورد ها را حذف کند؟



csharpprogramer88
یک شنبه 27 مهر 1393, 10:01 صبح
سلام من کد حذف را با EF نوشتم و میخام رکوردهایی را که شماره مشتری هایشان برابر با متغیر a هستن را حذف کنم


tbl_khat_ertebati tbl = dbcrm.tbl_khat_ertebati.First(i => i.id_custoomer == a);
dbcrm.tbl_khat_ertebati.Remove(tbl);
dbcrm.SaveChanges();




ولی این کد فقط اولین رکوردی که آیدی مشتریش برابر با متغیر a هست را حذف میکنه من میخام تموم رکوردهایی که شماره مشتری با متغیر a برابر حذف کنم این کد را چطور تغییر بدم ؟

veniz2008
یک شنبه 27 مهر 1393, 11:06 صبح
سلام.
طبیعی هست که فقط اولین رکورد رو حذف کنه چون از First استفاده کردید. از شرط where استفاده کنید تا همه رکوردها رو براتون پیدا کنه. برای چیزی که مد نظرتون هست راه های زیادی وجود داره. من 3 روش رو براتون میگم :
ابتدا مطمئن بشید که فضای نام زیر رو در بالای فرمتون دارید :

using System.Data.Entity;
روش اول :
استفاده از متد Load :

dbcrm.tbl_khat_ertebati.Where(i => i.id_custoomer == a).Load();
dbcrm.tbl_khat_ertebati.Local.Clear();
dbcrm.SaveChanges();

روش دوم : استفاده از حلقه foreach :

var Records = dbcrm.tbl_khat_ertebati.Where(i => i.id_custoomer == a);
foreach (var p in Records)
{
dbcrm.tbl_khat_ertebati.Remove(p);
}
dbcrm.SaveChanges();
روش سوم : استفاده از کوئری های sql :

dbcrm.Database.ExecuteSqlCommand(string.Format("delete from tbl_khat_ertebati where id_custoomer = {0}",a));
موفق باشید.