2010-08-30 4 views
15

ठीक है, यह ईएफ से संबंधित नहीं हो सकता है। मैं कोड की पहली सुविधा का उपयोग करने की कोशिश कर रहा हूँ और निम्नलिखित मैं क्या लिखा है: -इकाई फ्रेमवर्क - 'providerInvariantName' पैरामीटर के लिए गैर-खाली स्ट्रिंग की अपेक्षा

var modelBuilder = new ModelBuilder(); 
      var model = modelBuilder.CreateModel(); 
      using (AddressBook context = new AddressBook(model)) 
      { 
       var contact = new Contact 
       { 
        ContactID = 10000, 
        FirstName = "Brian", 
        LastName = "Lara", 
        ModifiedDate = DateTime.Now, 
        AddDate = DateTime.Now, 
        Title = "Mr." 

       }; 
       context.contacts.Add(contact); 
       int result = context.SaveChanges(); 
       Console.WriteLine("Result :- "+ result.ToString()); 

      } 

संदर्भ वर्ग: -

public class AddressBook : DbContext 
    { 
     public AddressBook() 
     { } 
     public AddressBook(DbModel AddressBook) 
      : base(AddressBook) 
     { 

     } 
     public DbSet<Contact> contacts { get; set; } 
     public DbSet<Address> Addresses { get; set; } 
    } 

और कनेक्शन स्ट्रिंग: -

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <connectionStrings> 
    <add name="AddressBook" connectionString="Data Source=MyMachine;Initial Catalog=AddressBook;Integrated Security=True;MultipleActiveResultSets=True;providerName=System.Data.SqlClient"/> 
    </connectionStrings> 
</configuration> 

इसलिए, डेटाबेस नाम "पता पुस्तिका" है और त्रुटि तब होती है जब मैं पता पुस्तिका ऑब्जेक्ट प्रारंभ करता हूं। मैं कनेक्शन स्ट्रिंग में जोड़ने के लिए लोगों को (प्रदाता नाम = "System.Data.SqlClient") जोड़ने का सुझाव देता हूं। लेकिन यह मेरे मामले में काम नहीं करता है। क्या मुझसे यहां कुछ छूट रहा है?

+0

@leppie, मेरे प्रश्न को संपादित करने और स्वरूपण के लिए धन्यवाद। –

उत्तर

34

आपको "ProviderName" नामक एक नई विशेषता के मान के रूप में System.Data.SqlClient को जोड़ना चाहिए। बस नीचे दिए गए जैसे: - जब मैं उत्पादन सर्वर के लिए मेरी वेबसाइट अपलोड

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <connectionStrings> 
    <add name="AddressBook" providerName="System.Data.SqlClient" connectionString="Data Source=MyMachine;Initial Catalog=AddressBook;Integrated Security=True;MultipleActiveResultSets=True;"/> 
    </connectionStrings> 
</configuration> 
3

मैं एक ही त्रुटि थी। मेरे कनेक्शन स्ट्रिंग में providerName प्रॉपर्टी सेट था। समस्या का cuase machine.config में एक कनेक्शन स्ट्रिंग LocalSqlServer नाम और एक भूमिका प्रदाता है कि इस्तेमाल किया गया है कि था कनेक्शन स्ट्रिंग:

<roleManager> 
    <providers> 
    <add name="AspNetSqlRoleProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    .... 

तो सब मैं दर्ज की खान से पहले कनेक्शन तार और भूमिका प्रदाताओं समाशोधन किया गया था करना था:

<connectionStrings> 
    <clear/> 
    <add name="DbEntities" connectionString="..." providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
    ... 
    <roleManager defaultProvider="DefaultRoleProvider" enabled="true"> 
    <providers> 
     <clear/> 
     <add name="DefaultRoleProvider" ... /> 
    </providers> 
    </roleManager> 
संबंधित मुद्दे