2009-03-09 19 views
6

मेरे पास एक डेटाबेस तालिका है जिसमें कई रिकॉर्ड हो सकते हैं और मैं तालिका में वर्तमान कुल को गिनना चाहता हूं। मैं एक साधारण करने के लिए जा रहा था:LINQ और गणना विस्तार विधि

DataContext.Table.Count(c => c.condition); 

तक मुझे एहसास हुआ Count के लिए वापसी प्रकार int है। क्या होगा यदि टेबल 32 बिट्स में प्रदर्शित किए जा सकने से अधिक मूल्यों को पकड़ना है? मैं उन्हें कैसे गिन सकता हूं?

क्या मुझे उस तरह के पैमाने के बारे में बात करते समय उन्हें अलग तरीके से गिनना चाहिए?

+0

हालांकि लॉन्गकाउंट() एक्सटेंशन विधि आपका समाधान है, लेकिन यदि संभवतः आपका फ़िल्टर परिणाम सेट 'int.MaxValue' द्वारा प्रदर्शित संख्या से अधिक है तो रन टाइम पर मेमोरी अपवाद से बाहर हो जाएगा। असल में यह 'int.MaxValue' के नीचे रास्ता विफल हो जाएगा, रिकॉर्ड्स की सीमा' लंबी '(एसक्यूएल में बिगिनट) पर जाने से भूल जाओ। सीएलआर किसी वस्तु के अधिकतम स्वीकृत आकार को 2 जीबी तक सीमित करता है। यदि आप वास्तव में उन रिकॉर्ड्स को स्मृति में लाने के लिए होते हैं तो कृपया अपने एप्लिकेशन को पुन: आर्किटेक्ट करने पर विचार करें। यहां अधिक जानकारी - http://stackoverflow.com/questions/1087982/single-objects-still-limited-to-2-gb-in-size-in-clr-4-0 – RBT

उत्तर

10

LongCount(), एक ही चीज़ का उपयोग करें, लेकिन 64 बिट परिणाम के साथ।

0

मेरा समाधान .LongCount() एक्सटेंशन विधि का उपयोग करना था।

+0

उत्तर देने के लिए उत्तर का उपयोग न करें अन्य पोस्टर टिप्पणियों का प्रयोग करें या अपना प्रश्न संपादित करें। यह एक चर्चा मंच नहीं है। – GEOCHET

+0

यह मुझे लगता है जैसे उसने खुद जवाब दिया और उत्तर देने के बजाए इसे पोस्ट किया। –

+0

@ मार्क: उनकी मूल पोस्ट इसे खोजने के लिए क्षमा नहीं थी। मैंने इसे संपादित किया है। – GEOCHET

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