2

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

AppDatabaseDataContext appDb = new AppDatabaseDataContext();

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

public AppDatabaseDataContext()
{

} 

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

谢谢!

4

4 回答 4

3

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

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

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

于 2012-06-20T18:09:13.000 回答
2

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

于 2013-09-09T21:29:36.053 回答
0

真奇怪。过去每次我使用“LINQ to SQL”DataContext 时,它总是为我创建一个 0 参数构造函数。

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

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

我的 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();
}

任务完成。

但是很奇怪。很奇怪。

于 2016-08-03T11:16:30.117 回答
-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>
于 2017-03-12T09:37:16.803 回答