2009-08-21 11 views
6

यह एक रिकार्ड पी का उपयोग कर नष्ट करने के लिए एसक्यूएल को LINQ पाने के लिए पहले रिकॉर्ड लोड किए बिना संभव है? NHibernate के प्रॉक्सी वस्तु कार्यक्षमता के लिए इसी तरह के?लोड किए बिना एसक्यूएल रिकॉर्ड करने के लिए एक LINQ हटाएँ यह पहली

उत्तर

15

आप इसे इस तरह से करने के लिए सक्षम होना चाहिए:

var person = new Person(); 
person.ID = someID; 

using (var context = new DataContext(connString)) 
{ 
    context.Persons.Attach(person, false); //attach is as unmodified 
    context.Persons.DeleteOnSubmit(person); //remove it 
    context.SubmitChanges(); //submit changes to db 
} 
3

जोसेफ जवाब देने के लिए जोड़ा जा रहा है:

अगर आपके इकाई किसी भी क्षेत्रों जिसके लिए UpdateCheck पर सेट किया जाता है, तो आप मुसीबत इस तरीके से हटाया जा रहा हो सकता है हमेशा की तरह, जब तक आप के रूप में उपयुक्त ऐसे क्षेत्रों की स्थापना की।

इसके अलावा, अगर आप एक से अधिक संबंधित संस्थाओं जहां FK की कमी शामिल कर रहे हैं हटा रहे हैं, तो आप मुसीबत अगर संस्थाओं उचित अनुक्रम (एक बाधा उल्लंघन में जिसके परिणामस्वरूप) में नहीं हटाया जाता है हो सकता है। इससे बचने के लिए, उचित रूप में इस तरह के FKS में शामिल सभी क्षेत्रों की स्थापना की।

संबंधित मुद्दे