I am trying to build data access layer with Enterprise Library 6.0 Data block. below is my config file
<configuration>
<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="true"/>
</configSections>
<dataConfiguration defaultDatabase="db"/>
<connectionStrings>
<add name="db" connectionString="..." providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
and below is my class file
public class MasterRepo
{
Database db = null;
static MasterRepo()
{
DatabaseFactory.SetDatabaseProviderFactory(new DatabaseProviderFactory());
}
public MasterRepo()
{
db = DatabaseFactory.CreateDatabase("db");
}
public int Save(int param1, int param2)
{
using (DbCommand cmd = db.GetStoredProcCommand("Save", param1, param2))
{
return cmd.ExecuteNonQuery();
}
}
}
but we are getting error "ExecuteNonQuery: Connection property has not been initialized." at cmd.ExecuteNonQuery() if we replace cmd.ExecuteNonQuery() with db.ExecuteNonQuery(cmd) then it works.
so why it is failing in first place and what is good way of handling this?