1

私は3層構造のDataAccessLayer、BusinessLogicLayer、およびWebサイトを持つプロジェクトを持っています。

私の DataAccessLayer では、app.config ファイルから接続文字列にアクセスする F# ライブラリ プロジェクトを使用しました。

F# コード -

type dbSchema = SqlDataConnection<"","MyConnection">

let connectionString = System.Configuration.ConfigurationManager.ConnectionStrings.               ["MyConnection"].ConnectionString 

App.config コード -

  <connectionStrings>
      <add name="MyConnection" connectionString="Data Source=MyServer;Initial   Catalog=MyDB;Persist Security Info=True;User ID=sa;Password=xyz;" providerName="System.Data.SqlClient"/>
  </connectionStrings>

これで、Web サイト BusinessLogic および Web サイト プロジェクトでこの dll の参照を指定しました。

データを取得するために BusinessLogicLayer の関数を呼び出しています -

var MyDataList = BusinessLogic.GetAllData().ToList();

問題は、Web サイトが web.config ではなく app.config ファイルで接続文字列を検索していることです。web.configから接続文字列を取得したい

4

3 に答える 3

1

Web プロジェクト用の web.config またはアプリケーション用の app.config のいずれかを持つことができます。

別の方法として、カスタム構成ファイルにロードすることもできますhttp://msdn.microsoft.com/en-us/library/system.configuration.sectioninformation.configsource.aspxも参照してください

于 2013-08-28T09:36:17.167 に答える
0

以下のコード行を使用して、接続文字列を取得できます-

using System;
using System.Configuration;

var connectionString=ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;

ここに参照があります: App.configからの接続文字列

于 2013-10-17T08:41:02.377 に答える
0

これは古い質問ですが、検索ではまだこの質問の前に出てきます: F# Type Provider for SQL in a class

F# Data Access で、次のような関数を追加します

let getDbContext connString = 
    match connString with
    | "" -> Sql.GetDataContext()
    | _ -> Sql.GetDataContext(connString)

次に、C# コードで getDbContext を呼び出し、実行時にweb.configから接続文字列を渡すことができます。

F# データ アクセス レイヤーには、コンパイラがその仕事を行うために提供される接続文字列が必要であることに注意してください。

于 2015-01-02T22:00:00.927 に答える