2

以下を含む Web アプリケーションがあります。

  1. MVC Web プロジェクト (接続文字列を含む web.config ファイルを使用しますが、データベース アクセス コードは含まれません)

  2. LINQ-SQL クラスを使用するデータ アクセス プロジェクト (クラス ライブラリです。このプロジェクトの dll は上記の MVC プロジェクトに配置され、その中のデータにアクセスします)。

必要なのは、MVC プロジェクトの web.config ファイルに接続文字列があることです。app.config、settings.settings、および dbml ファイルの接続文字列が MVC webcofig ファイルの接続文字列に従って変更されるように、クラス ライブラリに関数を記述する必要があります。そして、データはこの接続に従ってデータベースから取得する必要があります..

4

2 に答える 2

4

以下のように DataContext のコンストラクターをオーバーライドします。

public partial class MyDataContext : System.Data.Linq.DataContext
{
    //This constructor make sure that the connection string is used from the web.config file.
    public MyDataContext()
        : base(ConfigurationManager.ConnectionStrings["SqlConnectionString"].ConnectionString, mappingSource)
    {
        OnCreated();
    }
}
于 2013-03-15T12:24:48.277 に答える
3

クラス ライブラリの DBML ファイルの接続文字列を「なし」に設定できます。DB 操作を実行するクラス ライブラリのクラスでは、コンストラクタから設定された接続文字列を使用できます。

例:

public class DBOperations
    {
        string conn;
        public DBOperations(string connectionString)
        {
            conn = connectionString;
        }

        //Use this connection string in Your functions
    }

この接続文字列は、Web アプリケーションから設定できます。また、対応するデータ アクセス レイヤー クラスのコンストラクターとして渡すことができます。

于 2013-03-15T12:15:50.460 に答える