dataclassesdatacontext'不包含带0个参数的构造函数?

Ash*_*wal 0 c# sql linq asp.net linq-to-sql

这是我的DBML Designer代码

    using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.Linq;
using System.Data.Linq.Mapping;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;



public partial class DataClassesDataContext  : System.Data.Linq.DataContext 

{

    private static System.Data.Linq.Mapping.MappingSource mappingSource = new AttributeMappingSource();

  #region Extensibility Method Definitions
  partial void OnCreated();
  #endregion

    public DataClassesDataContext(string connection) : 
            base(connection, mappingSource)

    {
        OnCreated();
    }

    public DataClassesDataContext(System.Data.IDbConnection connection) : 
            base(connection, mappingSource)
    {
        OnCreated();
    }

    public DataClassesDataContext(string connection, System.Data.Linq.Mapping.MappingSource mappingSource) : 
            base(connection, mappingSource)
    {
        OnCreated();
    }

    public DataClassesDataContext(System.Data.IDbConnection connection, System.Data.Linq.Mapping.MappingSource mappingSource) : 
            base(connection, mappingSource)
    {
        OnCreated();
    }

}
Run Code Online (Sandbox Code Playgroud)

这是我的C#代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.Linq;



public partial class Login : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void cmdLogin_Click(object sender, EventArgs e)
    {
        DataClassesDataContext db = new DataClassesDataContext();

    }
}
Run Code Online (Sandbox Code Playgroud)

当我写DataClassesDataContex db = new DataClassesDataContex(); 它会显示DataClassesDataContex不包含一个带0参数的构造函数?

Ser*_*kiy 6

您的类中没有定义无参数构造函数DataClassesDataContext.默认情况下,应该生成另一个构造函数,它从应用程序设置获取连接字符串:

public DataClassesDataContext() : 
        base(global::Foo.Properties.Settings.Default.BarConnectionString,
            mappingSource)
{
    OnCreated();
}
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,它现在缺失了.您可以:

  • 尝试重新生成数据上下文(可能是您错误地删除了此构造函数).要执行此操作,请右键单击dbml文件,然后选择"运行自定义工具".
  • 创建分部类DataClassesDataContext并手动添加无参数构造函数
  • 创建上下文实例时将连接字符串传递给构造函数

  • 当我运行自定义工具时,它的工作原理是@lazyberezovsky (2认同)