DataContext不包含具有0个参数的构造函数

时间:2012-06-20 17:59:53

标签: c# linq-to-sql constructor

我正在学习这个,所以请耐心等待...我正在尝试创建数据库对象来访问该表。

AppDatabaseDataContext appDb = new AppDatabaseDataContext();

这给了我一个错误,所以我创建了构造函数......

public AppDatabaseDataContext()
{

} 

现在这告诉我System.Data.Linq.DataContext不包含带0参数的构造函数。为什么?

谢谢!

4 个答案:

答案 0 :(得分:3)

您需要指定连接字符串。如果您知道它总是相同的(例如,localhost),您可以在无参数构造函数中对其进行硬编码:

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

注意我们如何链接构造函数以调用使用连接字符串的版本。这样,您可以使用无参数构造函数实例化数据上下文,它将使用此默认连接字符串。

答案 1 :(得分:2)

有时LINQ2SQL可能会在属性窗口上变得混乱,连接字符串可能会消失。 如果可以,重新启动,删除de Dbml但不要忘记从web.config中删除连接字符串。将新的Linq2SQL添加到项目中,让LINQ2SQL在web.config中为U创建连接字符串。

答案 2 :(得分:0)

很奇怪。每次我使用" LINQ to SQL"在过去的DataContext中,它总是为我创建一个0参数构造函数。

但是今天,我发现有时候,在Designer中,它不会让我在“属性”窗口中选择一个特定的(已知的)连接字符串......当发生这种情况时,它拒绝创建这个0 -argument构造函数。

解决方案是自己手动添加。

我的web.config包含一个名为MikesConnectionString的连接字符串:

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

...所以在我的 survey.designer.cs 文件中,我添加了这个:

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

完成工作。

但很奇怪。很奇怪。

答案 3 :(得分:-1)

Just Change your connection string just like  
<connectionStrings>
    <add name="DBLabConnectionString" 
         connectionString="Data Source=.\SQLExpress;Initial Catalog=DatabaseName;
         Integrated Security=True" 
         providerName="System.Data.SqlClient" />
 </connectionStrings>