3

I am having trouble changing the connection string used by entity framework code first for my project. I created a MVC3 project and then added two projects, DomainClasses and DataAccess.

The DomainClasses project has one class file named Classes.cs with one class:

public class User
{
    public int ID { get; set; }
    public string Username { get; set; }
    public string EmailAddress { get; set; }
    public string Password { get; set; }
    public int StatusID { get; set; }
    public DateTime DateCreated { get; set; }
}

The DataAccess project has one class file named PLNQDB.cs with one class:

public class PLNQDB : DbContext
{
    public DbSet<User> Users { get; set; }
}

I have a reference to each of these projects inmy MVC project and everything builds fine and runs and even creates the database file that I am able to save to and retrieve data from.

When running the project I can see in the Autos window the connection string being used under this.db.base.Database.Connection.base.ConnectionString =

"Data Source=.\\SQLEXPRESS;Initial Catalog=PLNQ.DataAccess.PLNQDB;Integrated Security=True;MultipleActiveResultSets=True"

My question is how do I override this autogenerated connectionstring to use my remote server. I have added a connection string to the web.config file of the MVC project.

  <connectionStrings>
    <add name="ApplicationServices"
         connectionString="Data Source=255.255.255.255;Initial Catalog=PLNQ;User ID=blah;Password=blah"
         providerName="System.Data.SqlClient" />
  </connectionStrings>

but everytime I run the project it still uses the auto generated connectionstring. I have also tried adding App.config files with the same connection string in both the DataAccess and DomainClasses projects.

What am I missing?

1 Answer 1

15

There are couple of options

1 You need to name the connection string that matches the your DbContext class name.

eg

  <connectionStrings>
    <add name="PLNQDB"
         connectionString="Data Source=255.255.255.255;Initial Catalog=PLNQ;User ID=blah;Password=blah"
         providerName="System.Data.SqlClient" />
  </connectionStrings>

2 In your DbContext constructor call the base class constructor with the connection string name

public class PLNQDB : DbContext
{
    public PLNQDB():base("ApplicationServices"){}

    public DbSet<User> Users { get; set; }
}
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.