मैं ईएफ 4.1 का उपयोग कर रहा हूं, और मैं एक सामान्य ईएफ edmx फ़ाइल बनाता हूं। मैं इसे डीबी से उत्पन्न करता हूं।इकाई फ्रेमवर्क डीबीकॉन्टेक्स्ट का उपयोग नहीं कर सकता, मॉडल बनाया जा रहा है
जब इसे उत्पन्न किया गया है, तो मैं नई कक्षाएं उत्पन्न करने के लिए दाएं क्लिक करें और कोड जनरेशन आइटम जोड़ें का चयन करें और इसके बजाय डीबीकॉन्टेक्स्ट का उपयोग करें। मैं टेम्पलेट डीबीकॉन्टेक्स्ट जेनरेटर का उपयोग करता हूं।
सबकुछ ठीक काम करता है।
using (var context = new PasDBEntities())
{
var client=context.ClientCompanies.SingleOrDefault(_=>_.ID==clientCompanyId);
if(client!=null)
मैं संदर्भ का एक नया उदाहरण बनाने कोई समस्या नहीं है, लेकिन जब मैं इसे समस्या क्वेरी करने के लिए कोशिश होते हैं:
तब मैं संदर्भ क्वेरी करने के लिए trie। मैं UnintentionalCodeFirstException पर फंस गया। और त्रुटि हो जाता है:
{"Code generated using the T4 templates for Database First and Model First development may not work correctly if used in Code First mode. To continue using Database First or Model First ensure that the Entity Framework connection string is specified in the config file of executing application. To use these classes, that were generated from Database First or Model First, with Code First add any additional configuration using attributes or the DbModelBuilder API and then remove the code that throws this exception."}
मैं पहली बार कोड का उपयोग नहीं करना चाहते हैं, लेकिन अगर मैं इसे "स्विच" कर सकते हैं बंद मैं नहीं जानता, या जहां समस्या है।
संदर्भ के लिए, मेरे निर्माता है ...
public partial class PasDBEntities : DbContext
{
public PasDBEntities()
: base("PasDBEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
... और कनेक्शन स्ट्रिंग:
<connectionStrings>
<add name="PasDBEntities"
connectionString="metadata=res://*/PasDB.csdl|
res://*/PasDB.ssdl|
res://*/PasDB.msl;
provider=System.Data.SqlClient;
provider connection string="
data source=localhost;
initial catalog=PasDB;
integrated security=True;
pooling=False;
multipleactiveresultsets=True;
App=EntityFramework""
providerName="System.Data.EntityClient" />
</connectionStrings>
(अपवाद उद्धृत करने के लिए) "** के आवेदन ** क्रियान्वित कॉन्फ़िग फ़ाइल" में इस कनेक्शन स्ट्रिंग है और न केवल एक कॉन्फ़िग फ़ाइल में पुस्तकालय परियोजना का? – Slauma
आप बहुत सही हैं। मुझे नहीं पता था कि मुझे ईएफ का उपयोग करने में सक्षम होने के लिए मेरे यूनिट परीक्षण प्रोजेक्ट में कनेक्शनस्ट्रिंग के लिए एक अतिरिक्त कॉन्फ़िगरेशन फ़ाइल जोड़नी थी। जिसने मेरी समस्या हल की, एक और app.config फ़ाइल जोड़ना। – Fore