我有一个应用程序,其对象类型继承自包含应用程序对象大部分属性的基类。所有对象类型都存储在数据库的一张表中。“ClassType”列确定了我将 SqlDataReader 行转换为的对象类型。
这是我当前的实现:
SqlDataReader dr = SqlServerHelper.ExecuteReader("MyStoreProc", MySqlParmas);
if(dr.HasRows)
{
while(dr.Read())
{
switch(dr["ClassType"].ToString())
{
case "ClassA":
//cast sqldatareader a ClassA object
ClassA a = new ClassFactory.CreateClassA(object p1, object p2);
case "ClassB":
//cast sqldatareader a ClassB object
ClassB b = new ClassFactory.CreateClassB(object p1, object p2);
//it continues for all objects with app....
}
}
}
dr.Close()
我的问题是他们对这种类型的处理有更好的实现吗?