有什么理由我不能使用旧版本的数据访问应用程序块(sqlhelper)和企业库(如果我不使用它的数据部分?)
2 回答
EnterpriseLibrary 被分解为几个不同的 dll,因此您甚至不需要引用您不想要的部分。即使它们被引用,也没有什么能阻止你混合和匹配。
如果您确实遇到在同一个类中引用了多个具有相同名称的类的情况,只需明确命名它们(或通过 using 语句)以确保您获取正确的对象类型。
请记住,对象的完全限定名称包括其命名空间,因此只要包含命名空间,其中一个中的 SqlHelper 与另一个中的 SqlHelper 不同。
玩得开心!
我不明白为什么你不能~从技术上讲。但是您不想转换它似乎很奇怪。
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 然后不关闭它。这是一个很大的禁忌。
但如前所述,完全限定的命名空间等可以帮助您解决问题。
不要忘记 EnterpriseLibrary.Data 框架比原来的 DAAB 更成熟。
并且不要忘记 DAAB 2.0 上的错误之一。
http://weblogs.asp.net/rosherove/archive/2003/07/29/10614.aspx