我正在尝试使用 Enterprise Library 6.0 数据块构建数据访问层。下面是我的配置文件
<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>
下面是我的类文件
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();
}
}
}
但我们收到错误“ExecuteNonQuery:连接属性尚未初始化。” 在 cmd.ExecuteNonQuery() 如果我们用 db.ExecuteNonQuery(cmd) 替换 cmd.ExecuteNonQuery() 那么它就可以工作。
那么为什么它首先失败了,什么是处理这个问题的好方法呢?