2011-12-20 8 views
5

मुझे सिस्टम प्राप्त हो रहा है। डेटा। SQL क्लाइंट। SQL सर्वर: लेनदेन फिर से शुरू करने में विफल रहा। Desc: 6c00000001 जब एक लिंक-टू-एसक्यूएल क्वेरी निष्पादित करता है।सर्वर लेनदेन को फिर से शुरू करने में विफल रहा। लिंक-टू-एसक्यूएल

using (var ctx = new EntitiesDataContext()) 
{ 
    ctx.ObjectTrackingEnabled = false; 
    ctx.DeferredLoadingEnabled = false; 

    var loadOptions = new DataLoadOptions(); 
    loadOptions.LoadWith<Company2QualifierLicense>(n => n.QualifierLicense); 
    loadOptions.LoadWith<Company2QualifierLicense>(n => n.Company); 
    loadOptions.LoadWith<QualifierLicense>(n => n.QualifierLicenseHoldStatus); 
    loadOptions.LoadWith<QualifierLicense>(n => n.LicenseTrade); 
    loadOptions.LoadWith<Company>(n => n.CompanyHoldStatus); 
    ctx.LoadOptions = loadOptions; 

    return ctx.Company2QualifierLicenses.Where(p => p.QualifierLicense.QualifierLicenseNumber == qualifierLicense).ToList(); 
} 

यहाँ एसक्यूएल उत्पन्न है:

यहाँ मेरी भंडार कॉल है

-- Region Parameters 
DECLARE @p0 VarChar(1000) = '11223344' 
-- EndRegion 
SELECT [t0].[CompanyID], [t0].[QualifierLicenseID], [t0].[InitiatedDate], [t0].[IsActive], [t0].[RowVersion], [t0].[LastUpdated], [t1].[QualifierLicenseID] AS [QualifierLicenseID2], [t1].[QualifierLicenseNumber], [t1].[LicenseTradeID], [t1].[LicenseExpirationDate], [t1].[FirstName], [t1].[LastName], [t1].[MailingAddress1], [t1].[MailingAddress2], [t1].[City], [t1].[StateAbbr], [t1].[ZIP], [t1].[Email], [t1].[Phone], [t1].[RowVersion] AS [RowVersion2], [t1].[LastUpdated] AS [LastUpdated2], [t3].[test], [t3].[LicenseTradeID] AS [LicenseTradeID2], [t3].[LicenseCode], [t3].[LicenseDescription], [t5].[QualifierLicenseHoldStatusID], [t5].[HoldReasonID], [t5].[QualifierLicenseID] AS [QualifierLicenseID3], [t5].[RowVersion] AS [RowVersion3], [t5].[LastUpdated] AS [LastUpdated3], (
    SELECT COUNT(*) 
    FROM [frontdesk].[QualifierLicenseHoldStatus] AS [t6] 
    WHERE [t6].[QualifierLicenseID] = [t1].[QualifierLicenseID] 
    ) AS [value], [t4].[CompanyID] AS [CompanyID2], [t4].[EIN], [t4].[CompanyName], [t4].[MailingAddress1] AS [MailingAddress12], [t4].[MailingAddress2] AS [MailingAddress22], [t4].[City] AS [City2], [t4].[StateAbbr] AS [StateAbbr2], [t4].[ZIP] AS [ZIP2], [t4].[Email] AS [Email2], [t4].[Phone] AS [Phone2], [t4].[RowVersion] AS [RowVersion4], [t4].[LastUpdated] AS [LastUpdated4] 
FROM [frontdesk].[Company2QualifierLicense] AS [t0] 
INNER JOIN ([frontdesk].[QualifierLicense] AS [t1] 
    LEFT OUTER JOIN (
     SELECT 1 AS [test], [t2].[LicenseTradeID], [t2].[LicenseCode], [t2].[LicenseDescription] 
     FROM [frontdesk].[LicenseTrade] AS [t2] 
     ) AS [t3] ON [t3].[LicenseTradeID] = [t1].[LicenseTradeID]) ON [t1].[QualifierLicenseID] = [t0].[QualifierLicenseID] 
INNER JOIN [frontdesk].[Company] AS [t4] ON [t4].[CompanyID] = [t0].[CompanyID] 
LEFT OUTER JOIN [frontdesk].[QualifierLicenseHoldStatus] AS [t5] ON [t5].[QualifierLicenseID] = [t1].[QualifierLicenseID] 
WHERE [t1].[QualifierLicenseNumber] = @p0 
ORDER BY [t0].[CompanyID], [t0].[QualifierLicenseID], [t1].[QualifierLicenseID], [t3].[LicenseTradeID], [t5].[QualifierLicenseHoldStatusID] 
GO 

-- Region Parameters 
DECLARE @x1 Int = 241 
-- EndRegion 
SELECT [t0].[CompanyHoldStatusID], [t0].[CompanyID], [t0].[HoldReasonID], [t0].[RowVersion], [t0].[LastUpdated] 
FROM [frontdesk].[CompanyHoldStatus] AS [t0] 
WHERE [t0].[CompanyID] = @x1 

आप मैं बना रहा हूं और तुरंत डेटाबेस क्वेरी के बाद DataContext के निपटान देख सकते हैं, तो कॉलिंग विधि से कोई और कॉल नहीं की जा सकती है।

मुझे लगता है कि डेटाबेस में दो प्रश्न जारी किए गए हैं और मेरा अनुमान है कि डेटाबेस को दूसरी क्वेरी जारी करते समय लेनदेन किया गया है, लेकिन लिंक-टू-एसक्यूएल उससे बेहतर होना चाहिए।

मैं .NET 4.0 उपयोग कर रहा हूँ और एसक्यूएल सर्वर 2008 R2 (SP1) - 10.50.2789.0

कोई भी विचार?

अद्यतन दिसम्बर/21/2011

यहाँ अपवाद का एक अन्य हिस्सा है: लेन-देन इस सत्र में सक्रिय प्रतिबद्ध या किसी अन्य सत्र से रोक दी गई है

अद्यतन दिसम्बर/30/2011

एक सहकर्मी ने पाया कि इस मुद्दे को माइक्रोसॉफ्ट को सूचित किया गया है और इसे एक बग के रूप में पुष्टि की गई है लेकिन इसे ठीक नहीं किया जाएगा, और उनकी सिफारिश इकाई फ्रेमवर्क में स्थानांतरित करने के लिए है।

+0

यह केवल पढ़ा जाता है, प्रतिबद्ध – Pleun

+0

क्या होता है यदि आप अपने डाटलोडोप्शन के बिना निष्पादित करते हैं और ऑब्जेक्टट्रैकिंग प्लस डिफर्ड्रेडलोडिंग सक्षम – Pleun

+0

@Pleun कृपया अपवाद संदेश पढ़ें। यह कहता है कि यह लेनदेन फिर से शुरू नहीं कर सका। मुझे ऑब्जेक्ट ट्रैकिंग और स्थगित लोडिंग के बिना अभी भी अपवाद मिलता है। जब मैं डेटा लोड विकल्पों को हटा देता हूं तो यह ठीक काम करता है, लेकिन इसे उनके साथ भी काम करना चाहिए। एक ही डेटाबेस यात्रा में जितना संभव हो उतना संबंधित एंटरसाइट प्राप्त करने का यह पूरा बिंदु है। – epignosisx

उत्तर

0

एक सहकर्मी ने पाया कि यह समस्या माइक्रोसॉफ्ट को मिली है और इसे एक बग के रूप में पुष्टि की गई है लेकिन इसे ठीक नहीं किया जाएगा, और उनकी सिफारिश इकाई फ्रेमवर्क में स्थानांतरित करने के लिए है।

-1

टिप्पणियों के लिए थोड़ा लंबा।

आपको यह समझने की आवश्यकता है कि linq2sql में उत्सुक लोडिंग पेड़ में कई स्तरों पर काम नहीं करती है। तो बी के साथ ए और सी लोड बी बी को एक-बी-सी लोड नहीं करता है।

http://www.lowendahl.net/showShout.aspx?id=190

यह आपके अतिरिक्त दूसरा क्वेरी बताते हैं।

अब आपको अपवाद क्यों मिलता है जिसे मैं नहीं जानता।

+0

मुझे डेटाबेस में जारी अतिरिक्त प्रश्नों के साथ कोई समस्या नहीं है। यदि एक शॉट में सभी डेटा प्राप्त करना संभव नहीं है तो मैं इसके साथ ठीक हूं।हालांकि, मुझे इस तरह असफल होने के लिए मेरी क्वेरी में कुछ भी गलत नहीं दिख रहा है। – epignosisx

+0

क्या यह एक टाइमआउट मुद्दा हो सकता है? यदि आप एसक्यूएल सर्वर में कच्चे एसक्यूएल निष्पादित करते हैं तो क्या होता है? – Pleun

+0

यह तुरंत लौटता है। क्वेरी को पूरा करने के लिए एक सेकंड से भी कम समय लगता है। – epignosisx

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