मैं EF4.0 उपयोग कर रहा हूँ, और मैं एक प्रश्न लिखा है:एसक्यूएल में सिंगलऑर्डिफॉल्ट परिणाम टॉप (2) क्यों?
var query = context.Post.Where(p => p.Id == postId).SingleOrDefault();
मैं इस क्वेरी से केवल एक पोस्ट की जरूरत है। मैंने सोचा था कि SingleOrDefault() "का चयन टॉप (1) ..." उत्पन्न होगा, लेकिन जब मैं एसक्यूएल प्रोफाइलर गौर, यह था:
exec sp_executesql N'SELECT TOP (2)
[Extent1].[Id] AS [Id],
[Extent1].[Title] AS [Title],
[Extent1].[Slug] AS [Slug],
[Extent1].[PubDate] AS [PubDate],
[Extent1].[PostContent] AS [PostContent],
[Extent1].[Author] AS [Author],
[Extent1].[CommentEnabled] AS [CommentEnabled],
[Extent1].[AttachmentId] AS [AttachmentId],
[Extent1].[IsPublished] AS [IsPublished],
[Extent1].[Hits] AS [Hits],
[Extent1].[CategoryId] AS [CategoryId]
FROM [dbo].[Post] AS [Extent1]
WHERE [Extent1].[Id] = @p__linq__0',N'@p__linq__0 uniqueidentifier',@p__linq__0='ECD9F3BE-3CA9-462E-AE79-2B28C8A16E32'
मैं चयन टॉप (2) में क्यों एफई परिणाम? मुझे केवल एक पोस्ट की जरूरत है।
और आप इस्तेमाल कर सकते हैं: 'वर क्वेरी = context.Post.SingleOrDefault (पी => p.Id == postid);' – Malmi
हम NHibernate, जो मैं यह करने के लिए उम्मीद का उपयोग कर रहे हैं, लेकिन यह नहीं है ... यह सब कुछ चुनता है ... Grrrrr ... –