2010-09-06 3 views
5

मैं एंटिटी फ्रेमवर्क 4 और सीटीपी 4 के साथ काम कर रहा हूं और वास्तव में इसे अब तक पसंद कर रहा हूं। जब मैं डेटाबेस से कनेक्ट करने के लिए Windows प्रमाणीकरण का उपयोग कर रहा हूं, तो मैं इसे सही तरीके से काम कर सकता हूं लेकिन जब मैं SQL प्रमाणीकरण पर स्विच करता हूं तो यह नीचे दिए गए संदेश से विफल रहता है। मैंने उपयोगकर्ता को एक sysadmin भूमिका दी है और यह डिफ़ॉल्ट डेटाबेस मास्टर है।कोड प्रथम इकाई फ्रेमवर्क 4: एसक्यूएल प्रमाणीकरण के साथ विफल

त्रुटि:

This operation requires a connection to the 'master' database. Unable to create a connection to the 'master' database because the original database connection has been opened and credentials have been removed from the connection string. Supply an unopened connection.

कोई भी विचार?

... कुछ और त्रुटि विवरण:

[InvalidOperationException: This operation requires a connection to the 'master' database. Unable to create a connection to the 'master' database because the original database connection has been opened and credentials have been removed from the connection string. Supply an unopened connection.] 
    System.Data.SqlClient.SqlProviderServices.UsingMasterConnection(SqlConnection sqlConnection, Action`1 act) +344 
    System.Data.SqlClient.SqlProviderServices.DbDatabaseExists(DbConnection connection, Nullable`1 commandTimeout, StoreItemCollection storeItemCollection) +231 
    System.Data.Objects.ObjectContext.DatabaseExists() +84 
    System.Data.Entity.Internal.DatabaseOperations.Exists(ObjectContext objectContext) +9 
    System.Data.Entity.Infrastructure.Database.Exists() +53 
    System.Data.Entity.Infrastructure.RecreateDatabaseIfModelChanges`1.InitializeDatabase(TContext context) +129 
    System.Data.Entity.Infrastructure.<>c__DisplayClass2`1.<SetInitializer>b__0(DbContext c) +75 
    System.Data.Entity.Infrastructure.Database.Initialize() +207 
    System.Data.Entity.Internal.InternalContext.Initialize() +70 
    System.Data.Entity.Internal.LazyInternalContext.get_ObjectContext() +9 
    System.Data.Entity.Internal.InternalContext.TryUpdateEntitySetMappingsForType(Type entityType) +51 
    System.Data.Entity.Internal.InternalContext.UpdateEntitySetMappingsForType(Type entityType) +17 
    System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType) +24 
    System.Data.Entity.Internal.Linq.EfInternalQuery`1.Initialize() +62 
    System.Data.Entity.Internal.Linq.EfInternalQuery`1.get_Provider() +9 
    System.Data.Entity.Infrastructure.DbQuery`1.System.Linq.IQueryable.get_Provider() +13 
    System.Linq.Queryable.Select(IQueryable`1 source, Expression`1 selector) +63 

उत्तर

2

यह मेरे लिए काम किया।

Database.SetInitializer<YourDbContext>(null); 

http://social.msdn.microsoft.com/Forums/en/adonetefx/thread/870959ef-5c06-4c3e-b9f8-454346592280

+0

बस यह दिखाने के लिए चला जाता है कि यह ईएफ वास्तव में कैसे है। 'और वास्तव में इसे अब तक पसंद कर रहा हूं' मुझे बहुत डराता है। –

+0

अगर आप वास्तव में मॉडल बदलते हैं, या हमेशा ड्रॉप करते हैं तो छोड़ दें ... यह (शून्य) कॉलर इसे CreateIfNotExists पर हमेशा सेट करता है। – bc3tech

1

के लिए धन्यवाद निम्न अपवाद के बारे में:
System.InvalidOperationException: इस आपरेशन 'मास्टर' डेटाबेस के लिए एक कनेक्शन की आवश्यकता है। 'मास्टर' डेटाबेस से कनेक्शन बनाने में असमर्थ क्योंकि मूल डेटाबेस कनेक्शन खोला गया है और कनेक्शन स्ट्रिंग से प्रमाण-पत्र हटा दिए गए हैं। एक खुला कनेक्शन की आपूर्ति करें। System.Data.SqlClient.SqlException: उपयोगकर्ता 'sa'

इकाई फ्रेमवर्क 4.1 अपडेट 1 में SQL प्रमाणीकरण का उपयोग करते समय कनेक्शन स्ट्रिंग में 'सुरक्षा सुरक्षा = सही' निर्दिष्ट करने की आवश्यकता को हटाने के लिए एक बग फिक्स शामिल है।
http://www.microsoft.com/download/en/details.aspx?id=26825