2016-05-02 21 views
0

Microsoft.Practices.EnterpriseLibraryを使用している場合は、web.configファイルを使用してデータベースの構成と接続を設定します。 MVC6 .Net Core/Vnextではどのように動作しますか?これを稼働させるには?スタートアップファイルに何かを設定する必要がありますか?エンタープライズライブラリWeb.configからAsp.net 5.0コアvnextへのデータベース接続MVC6

のWeb.Config

<configSections> 
<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" /> 
    </configSections> 
<dataConfiguration defaultDatabase="MyDBConnectionString" /> 
<connectionStrings> 
<add name="MyDBConnectionString" connectionString="Data Source=MyDatabaseServer;Database=MyDatabase; Integrated Security=SSPI;" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

appsettings.json

{ 
"Data": { 
    "dataConfiguration": { 
    "type":"Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", 
     "requirePermission": "false" 
}, 
"DefaultConnection": { 
    "ConnectionString": "Data Source=MyDatabaseServer;Database=MyDatabase; Integrated Security=SSPI;", 
    "providerName": "System.Data.SqlClient" 
} 
}, 

データアクセス

public static Model.Record GetRecordByID(Int32 ID) 
    { 

     //Declare the variables 
     Amendment obj = new Record(); 
     object xml = null; 
     DbCommand dbCmd = null; 
     Database db = null; 
     try 
     { 

      // Create the database object, using the default database service. The 
      // default database service is determined through configuration. 


      DatabaseProviderFactory factory = new DatabaseProviderFactory(new SystemConfigurationSource()); 
      DatabaseFactory.SetDatabaseProviderFactory(factory, false); 


      db = DatabaseFactory.CreateDatabase(); 


      dbCmd = db.GetStoredProcCommand("spXMLGetRecordByID"); 

      db.AddInParameter(dbCmd, "RecordID", DbType.Int32, ID); 
      db.AddInParameter(dbCmd, "@xml", DbType.Xml, 1); 



      if (!xml.Equals(DBNull.Value)) 
      { 


       obj = (Amendment)Deserialize(xml.ToString(), typeof(Record)); 
      } 


     } 
     catch (SqlException sqlEx) 
     { 
      // ExceptionUtility.SendError(sqlEx, "DAL", "GetRecordByID"); 
     } 
     catch (Exception ex) 
     { 
      //ExceptionUtility.SendError(ex, "DAL", "GetRecordByID"); 

     } 
     finally 
     { 
      // DALCleanUp(db, dbCmd); 

     } 

     return obj; 

    } 

答えて

-1

のAppSettingsの設定を使用するには.json(またはその他のjsonファイル)を作成するには、最初の手順でクラスStartupのIConfigurationRootメンバ変数にファイルを追加します。このコードは、ASP.NET 5テンプレートを使用してプロジェクトを作成するときに生成されます。

その後、IConfigurationRootメンバー変数を使用して、jsonファイルから個々の値にアクセスできます。

this.Configuration["Data:DefaultConnection:ConnectionString"] 

jsonに一致するクラスがある場合は、設定ファイルのセクションを取得することもできます。

StartupクラスのConfigureServices()メソッドでは、jsonファイルの値をIoCコンテナに追加します。

services.Configure<DataConfiguration>(Configuration.GetSection("Data:dataConfiguration")); 

これはあなたがまた、フレームワークによって呼び出された任意のクラスからの設定にアクセスすることができ、クラスのスタートアップ

DataConfiguration dataConfig; 
bool requirePermission; 

dataConfig= app.ApplicationServices.GetService<DataConfiguration>(); 
requirePermission = dataConfg.RequirePermission ; 

の設定()メソッドでは、これらの設定にアクセスする方法である(あなたのインスタンス化クラス理由IoCコンテナにあります)。

public class MyController : Controller 
{ 
    private IOptions<DataConfiguration> dataConfig; 

    public MyController(IOptions<DataConfiguration> dataConfig) 
    { 
     this.dataConfig= dataConfig; 
    } 

    ... 
} 
+0

私はコードdb = DatabaseFactory.CreateDatabase()の行にヒットしました。 「設定ファイルでデフォルトのデータベースが定義されていません」というエラーが表示されます。 – wolfeh

+0

これは私のためには機能しませんでしたEnterprise Library Databaseはデフォルトデータベースを定義できませんでした。 – wolfeh

+0

申し訳ありません。 ASP.NET Coreのアプリケーション設定の使い方に関する情報が必要だったと思いました。 XMLを必要とするエンタープライズライブラリのプロパティでは、XmlSerializerクラスを使用して、構成クラスをXMLに変換できます。 –

関連する問題