企业库6的DAAB使用方法变了参考一篇文章

Database provider factory not set for the static DatabaseFactory    

18. August 2013          Anil          Asp.Net , C# , Enterprise Library          Comments (0)        
    

“Database provider factory not set for the static DatabaseFactory. Set a provider factory invoking the DatabaseFactory.SetProviderFactory method or by specifying custom mappings by calling the DatabaseFactory.SetDatabases method.”

New Enterprise Library version 6 requires to set for factory method if we are using xml configuration files to configure application blocks. Since you are using Data Access Application Blocks, so you need to set DatabaseProviderFactory.

SetDatabaseProviderFactory  is one time setting before using application block.  That’s why in our sample solution I have kept this line of code into static constructor –

1
2
3
4

static ModelMasterDataAccess()
{
   DatabaseFactory.SetDatabaseProviderFactory(newDatabaseProviderFactory());
}

Another good approach is to use DataBaseProviderFactory class directly. I have commented this in our sample solution.

1
2

DatabaseProviderFactory factory = newDatabaseProviderFactory();
Database db = factory.Create("ConStringAutoMilesSqlDB");

使用方法,找到Global.asax文件,在Start函数内添加 DatabaseFactory.SetDatabaseProviderFactory(new DatabaseProviderFactory());