有什么理由我不能使用旧版本的数据访问应用程序块(sqlhelper)和企业库(如果我没有使用它的数据部分?)
答案 0 :(得分:1)
EnterpriseLibrary分为几个不同的dll,因此您甚至不需要引用您不想要的部分。即使它们被引用,也没有任何东西阻止你混合和匹配。
如果遇到同一个类中引用了多个具有相同名称的类的情况,只需明确命名它们(或通过using语句)以确保获取正确的对象类型。
请记住,对象的完全限定名称包括其命名空间,因此只要包含命名空间,SqlHelper就会与另一个中的SqlHelper不同。
玩得开心!
答案 1 :(得分:0)
我不明白为什么你不能〜技术上做到这一点。 但是你不想转换它似乎很奇怪。
EnterpriseLibarary.Data框架的“清洁度”非常吸引人。
它也是非常“干净”的代码。 例如:
public override IDataReader CustomersGetSingleWithOrdersReader(string customerId)
{
IDataReader returnReader = null;
try
{
Database db = this.GetDatabase(); //encapsulate call to retrieve a database object, very simple routine
DbCommand dbc = db.GetStoredProcCommand ("dbo.uspCustomersGetSingleWithOrders);
db.AddInParameter(dbc, "@CustomerID", System.Data.DbType.String, customerId);
returnReader = db.ExecuteReader(dbc);
return returnReader;
}
finally
{
}
}
您关注上述代码中的两件事。要调用哪个存储过程。 给它什么参数。 EnterpriseLibrary.Data为您完成剩下的工作。
根据我的经验,EnterpriseLibrary.Data唯一无法保护的东西 你来自(因为它不能在这种情况下)使用IDataReader AND 然后关闭它。 这是一个很大的禁忌。
但如前所述,完全限定的命名空间等可以帮助您解决问题。
不要忘记EnterpriseLibrary.Data框架比原始DAAB更成熟。
不要忘记DAAB 2.0上的一个错误。
http://weblogs.asp.net/rosherove/archive/2003/07/29/10614.aspx