アプリケーション オブジェクトのプロパティの大部分を含む基本クラスから継承するオブジェクト タイプを持つアプリケーションがあります。すべてのオブジェクト タイプは、データベース内の 1 つのテーブルに格納されます。「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()
私の質問は、このタイプの処理のより良い実装ですか?