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;
}
私はコードdb = DatabaseFactory.CreateDatabase()の行にヒットしました。 「設定ファイルでデフォルトのデータベースが定義されていません」というエラーが表示されます。 – wolfeh
これは私のためには機能しませんでしたEnterprise Library Databaseはデフォルトデータベースを定義できませんでした。 – wolfeh
申し訳ありません。 ASP.NET Coreのアプリケーション設定の使い方に関する情報が必要だったと思いました。 XMLを必要とするエンタープライズライブラリのプロパティでは、XmlSerializerクラスを使用して、構成クラスをXMLに変換できます。 –