0

这是我的 DBML 设计器代码

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

}

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

    }
}

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

4

3 回答 3

7

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

public DataClassesDataContext() : 
        base(global::Foo.Properties.Settings.Default.BarConnectionString,
            mappingSource)
{
    OnCreated();
}

但由于某种原因,它现在不见了。你可以:

  • 尝试重新生成您的数据上下文(可能您错误地删除了此构造函数)。为此,请右键单击您的dbml文件并选择Run custom tool
  • 创建部分类DataClassesDataContext并手动添加无参数构造函数
  • 创建上下文实例时将连接字符串传递给构造函数
于 2013-06-26T12:49:09.787 回答
4

脚步:

  1. 记住您的 dbml 文件名并删除您的 dbml 文件。
  2. 然后将具有相同先前名称的新 dbml 文件添加到相同位置(添加 -> 添加新项 -> LINQ to SQL 类)。
  3. 在解决方案资源管理器中双击 dbml 文件。
  4. 现在将所有表拖放到 dbml 的该布局中。
  5. 最后像之前所做的那样添加与表的所有关联。
于 2015-07-19T13:19:26.797 回答
0

我通过以下步骤修复了它:

  1. 删除您的“dataclasses.dbml”
  2. 打开你的“Web.Config”
  3. 消除:

    <connectionString>
        <add name="exampleDB" connectionString="Data Source=example;Initial
        Catalog=example;Integrated Security=True"
        providerName="System.Data.SqlClient" />
    </connectionStrings>
    
  4. 消除:

    <assemblies>
        <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral,
        PublicKeyToken=D...8"/>
    </assemblies>
    

你可以在<assemblies>里面找到<compilation></compilation>

如果您有多个<add assembly />标签,则您与 DB 的连接不止一个。

  1. 添加另一个“example.dbml”再次添加您的表。

  2. 创建一个新的数据上下文对象。

于 2016-11-13T21:42:46.497 回答