سلام.دستوری که مربوط به حذف تمام اطلاعات یک جدول(بدون هیچ قید و شرطی) با استفاده از دستورات لینکیوه چیه؟
سلام.دستوری که مربوط به حذف تمام اطلاعات یک جدول(بدون هیچ قید و شرطی) با استفاده از دستورات لینکیوه چیه؟
سلام.
شما می تونید با استفاده از DataContext.ExecuteCommand دستور SQL مورد نظر رو اجرا کنید... اما وقتی می گید بی قید و شرط، این موضوع به ذهن میرسه که مایلید Trigger ها و Constraint های موجود روی جدول نادیده گرفته بشه. برای این کار، باید بدین شکل عمل کنید:
--disable constarints and triggers...
ALTER TABLE MyTable NOCHECK CONSTRAINT ALL
ALTER TABLE MyTable DISABLE TRIGGER ALL
--delete or truncate table...
DELETE MyTable
--enable constarints and triggers...
ALTER TABLE MyTable CHECK CONSTRAINT ALL
ALTER TABLE MyTable ENABLE TRIGGER ALL
اینجا، ابتدا Trigger ها و Constraint ها روی MyTable بطور موقت غیر فعال میشن، داده ها از جدول حذف میشن (میتونید از TRUNCATE نیز برای این کار استفاده کنید)، سپس Trigger ها و Constraint ها مجددا Enable میشن. بنابراین، توصیه می کنم Stored Procedure ای برای اینکار درست کنید، و اون SP رو از طریق کد فراخوانی کنید تا کدتون Loosely Coupled باشه (و اگر فردا به هر دلیلی منطق حذف کردن دادها تغییر کرد، مجبور به تغییر برنامه و Compile مجدد اون نباشید).
موفق باشید.
پاورقی: LINQ رو مدت هاست که "لینک" تلفظ می کنن. اوائل، برخی اونو "لینکیو" تلفظ می کردن، اما مدت هاست که این مساله به دست فراموشی سپرده شده. :)
ممنون دوست عزیز اما منظورم استفاده از دستورات لینک به sql در داخل سی شارپ بود.
راستی چطوری میشه مثلا تمامی رکوردها از یک جدول خرید رو ک کالای "بیسکوییت" رو خرید کرده اند حذف کرد.با استور پروسیجر خیلی راحته اما میخوام بدونم دستورات لینکش چیه؟
ممنون
سلام
فکر کنم کدهای زیر مشکل شما رو حل کنه
DBEntities Context = new DBEntities();
(from l in Context.Links
where l.linkID == linkID
select l).ToList().ForEach(Context.DeleteObject);
موفق باشی
--disable constarints and triggers...
ALTER TABLE MyTable NOCHECK CONSTRAINT ALL
ALTER TABLE MyTable DISABLE TRIGGER ALL
--delete or truncate table...
DELETE MyTable
--enable constarints and triggers...
ALTER TABLE MyTable CHECK CONSTRAINT ALL
ALTER TABLE MyTable ENABLE TRIGGER ALL
عزيز يك stored procedure درست كن كد بالا رو در اون قرار بده
و سپس Stored procedure رو در LINQ اضافه كنيد و دقيقا مثل يك متد از اون استفاده كنيد
سلام...کسی میدونه کد من رو کامل کنه ..... میخوام کل محتویات جدول رو با زدن یک linklabel حذف کنم و دیتا گرید رو به روز کنم
var db = new manegmentDataContext();
var q =new Tbl_Kharid();
؟؟؟؟.؟؟؟؟
dg_print.DataSource = q;
خودم پیداش کردم:
var db = new manegmentDataContext();
var del = from d in db.Tbl_Kharids select d;
db.Tbl_Kharids.DeleteAllOnSubmit(del);
db.SubmitChanges();
آفرین به خودم
راحترين روش
context.Entities.DeleteAllOnSubmit(dc.Entities);
يا
context.ExecuteCommand("DELETE FROM EntityName");