c# - टाइपस्पेस 'System.Data' में टाइप या नेमस्पेस नाम 'ऑब्जेक्ट्स' मौजूद नहीं है




.net visual-studio-2008 (6)

मैं एन-स्तरीय ऐप बनाने के लिए इकाइयों, सी # और एसक्यूएल सर्वर का उपयोग कर रहा हूं। मैं अपने सभी डीएएल घटकों के लिए सामान्य कुछ आधार वर्ग बना रहा हूं। इस बेस क्लास में, मैं संस्था ऑब्जेक्ट द्वारा विरासत में ऑब्जेक्ट कॉन्टेक्स्ट बेस क्लास की कनेक्शन स्थिति को संभालना चाहता हूं।

संकलन निम्नलिखित त्रुटि फेंकता है:

टाइपस्पेस 'System.Data' में टाइप या नेमस्पेस नाम 'ऑब्जेक्ट्स' मौजूद नहीं है (क्या आप असेंबली संदर्भ खो रहे हैं?)

साथ ही, उपयोग कथन System.Data.Objects एक ही कारण के लिए हल नहीं करता है।

मैंने असेंबली को संदर्भ के रूप में जोड़ने का प्रयास किया, लेकिन इसे असेंबली संदर्भों के .NET टैब में नहीं मिला।

कोई विचार? धन्यवाद!


अगर आप "System.Data.Objects.EntityFunctions" का उपयोग करना चाहते हैं

ईएफ 6.1+ में "System.Data.Entity.DbFunctions" का उपयोग करें


आपको .NET असेंबली System.Data.Entity.dll का संदर्भ जोड़ने की आवश्यकता है।


ईएफ 6+ के लिए मेरे मामले में, इसका उपयोग करते समय:

System.Data.Entity.Core.Objects.ObjectQuery

इस आदेश के हिस्से के रूप में:

var sql = ((System.Data.Entity.Core.Objects.ObjectQuery)query).ToTraceString();

मुझे यह त्रुटि मिली:

Cannot cast 'query' (which has an actual type of 'System.Data.Entity.Infrastructure.DbQuery<<>f__AnonymousType3<string,string,string,short,string>>') to 'System.Data.Entity.Core.Objects.ObjectQuery'

तो मैं इसका उपयोग करने के लिए समाप्त हो गया:

var sql = ((System.Data.Entity.Infrastructure.DbQuery<<>f__AnonymousType3<string,string,string,short,string>>)query).ToString();    

बेशक आपका अनाम प्रकार हस्ताक्षर अलग हो सकता है।

HTH।


कुछ समय पहले ईएफ 5 से ईएफ 6 तक अपग्रेड किया गया और इस मुद्दे का सामना करना पड़ा। मैं जेनरेट कोड को System.Data.Entity.Core.Objects को संदर्भित करने के लिए इसे ठीक करके ठीक कर System.Data.Entity.Core.Objects , लेकिन पीढ़ी के बाद इसे फिर से बदल दिया जाएगा (जैसा कि इसके जेनरेट होने के बाद से अपेक्षित है)।

इसने समस्या को हल करने के लिए हल किया:

http://msdn.microsoft.com/en-us/data/upgradeef6

यदि आपके पास ईएफ डिजाइनर के साथ बनाए गए कोई मॉडल हैं, तो आपको ईएफ 6 संगत कोड उत्पन्न करने के लिए कोड जनरेशन टेम्पलेट्स को अपडेट करना होगा। नोट: वर्तमान में केवल स्टूडियो स्टूडियो 2012 और 2013 के लिए उपलब्ध ईएफ 6.x डीबीकॉन्टेक्स्ट जनरेटर टेम्पलेट्स उपलब्ध हैं।

  1. मौजूदा कोड-जनरेशन टेम्पलेट हटाएं। इन फ़ाइलों को आम तौर पर <edmx_file_name> .tt और <edmx_file_name> .Context.tt नाम दिया जाएगा और समाधान एक्सप्लोरर में आपकी edmx फ़ाइल के अंतर्गत घोंसला दिया जाएगा। आप समाधान एक्सप्लोरर में टेम्पलेट का चयन कर सकते हैं और उन्हें हटाने के लिए डेल कुंजी दबा सकते हैं।
    नोट: वेब साइट प्रोजेक्ट्स में टेम्पलेट्स को आपकी एडीएमएक्स फ़ाइल के तहत घोंसला नहीं दिया जाएगा, लेकिन इसके साथ समाधान एक्सप्लोरर में सूचीबद्ध किया जाएगा।
    नोट: वीबी.नेट परियोजनाओं में आपको नेस्टेड टेम्पलेट फ़ाइलों को देखने में सक्षम होने के लिए 'सभी फ़ाइलें दिखाएं' सक्षम करने की आवश्यकता होगी।
  2. उपयुक्त ईएफ 6.x कोड जनरेशन टेम्पलेट जोड़ें। ईएफ डिजाइनर में अपना मॉडल खोलें, डिज़ाइन सतह पर राइट-क्लिक करें और कोड जनरेशन आइटम जोड़ें चुनें ...
    • यदि आप DbContext API (अनुशंसित) का उपयोग कर रहे हैं तो EF 6.x DbContext जनरेटर डेटा टैब के अंतर्गत उपलब्ध होगा।
      नोट: यदि आप विजुअल स्टूडियो 2012 का उपयोग कर रहे हैं, तो आपको इस टेम्पलेट के लिए ईएफ 6 टूल्स इंस्टॉल करना होगा। विवरण के लिए इकाई फ्रेमवर्क देखें।
    • यदि आप ऑब्जेक्ट कॉन्टेक्स्ट एपीआई का उपयोग कर रहे हैं तो आपको ऑनलाइन टैब चुनना होगा और ईएफ 6.x EntityObject जेनरेटर की खोज करनी होगी
  3. यदि आपने कोड जनरेशन टेम्पलेट्स के लिए कोई भी अनुकूलन लागू किया है तो आपको उन्हें अपडेट किए गए टेम्पलेट्स पर पुनः लागू करने की आवश्यकता होगी।

यदि आप एंटिटी फ्रेमवर्क 6 का उपयोग कर रहे हैं, तो नाम स्थान बदल गया है। आप उपयोग करना चाहते हैं

System.Data.Entity.Core.Objects.ObjectQuery





entities