Question: I am learning with this so bear with me...I am trying to create the DB object to access the table.

```
AppDatabaseDataContext appDb = new AppDatabaseDataContext();

```

This gives me an error, so I create the constructor...

```
public AppDatabaseDataContext()
{

} 

```

Now this tells me that `System.Data.Linq.DataContext` does not contain a constructor that takes 0 parameters. Why? 

Thanks!

Answer: 
You need to specify a connection string. If you know it's always going to be the same (for example, localhost) you can just hard-code it in your parameterless constructor:

```
public AppDatabaseDataContext()
    : this(@"Data Source=localhost;Initial Catalog=Foo;Integrated Security=True")
{
}

```

Notice how we chain the constructor to call the version that consumes a connection string. This way, you can instantiate the data context using the parameterless constructor, and it will use this default connection string.
It's strange. Every time I've used a "LINQ to SQL" DataContext in the past, it's always created a 0-argument constructor for me.

But today, I was finding that sometimes, in the Designer, it wouldn't let me select a particular (known) connection string in the Properties window... and when this happened, it refused to create this 0-argument constructor.

The solution was to manually add it myself.

My web.config contained a connection string called `MikesConnectionString` :

```
<configuration>
  <connectionStrings>
    <add name="MikesConnectionString" connectionString="Data Source=localhost;Initial Catalog=MikesDatabase;Integrated Security=True"
      providerName="System.Data.SqlClient" />
  </connectionStrings>

```

... so in my **survey.designer.cs** file, I added this:

```
public SurveyDataContext() :
            base(global::System.Configuration.ConfigurationManager.ConnectionStrings["MikesConnectionString"].ConnectionString, mappingSource)
{
     OnCreated();
}

```

Job done.

But odd. Very odd.