2013-06-26 65 views
0

這是我的DBML設計代碼dataclassesdatacontext'不包含帶0參數的構造函數?

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分貝=新DataClassesDataContex();它會顯示DataClassesDataContex不包含一個構造函數,它需要0個參數?

+0

看看DataClassesDataContext - 除非你有另一個帶有附加構造函數的分類的文件,否則我看不到任何無參數的構造函數。 – Tim

+0

那我該怎麼辦? –

+0

Umm ....使用DataClassesDataContext提供的四個構造函數之一? – Tim

回答

5

在你的類DataClassesDataContext中沒有定義無參數的構造函數。默認情況下,應該有產生另一個構造,從應用程序設置獲取連接字符串:

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

但由於某些原因,它現在下落不明。您可以:

  • 嘗試重新生成您的數據上下文(可能您錯誤地刪除了此構造函數)。爲此,請右鍵單擊您的dbml文件並選擇運行自定義工具
  • 創建部分類DataClassesDataContext並添加參數的構造函數手動
  • 通連接字符串創建上下文實例
+2

當我運行自定義工具它的工作thatnx @lazyberezovsky –

3

步驟時的構造函數:

  1. 記住你的dbml文件的名稱,並刪除您的dbml文件。
  2. 然後添加一個新的具有相同名稱的dbml文件到相同的位置(添加 - >添加新項目 - > LINQ到SQL類)。
  3. 雙擊解決方案資源管理器中的dbml文件。
  4. 現在將所有表拖放到該佈局的dbml。
  5. 最後像以前那樣添加與表格的所有關聯。
+0

這幫助了我,謝謝。 – graycrow

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> 
    

可以內<compilation></compilation>

找到<assemblies>如果你有一個以上的<add assembly />標籤,你有一個以上的連接到數據庫。

  1. 添加另一個「example.dbml」再次添加您的表格。

  2. 創建一個新的數據上下文對象。

相關問題