0

リフレクションを使用してデータベースストアドプロシージャからクラスを作成しました。エンティティを使用したり、クラスの厳密に型指定されたモデルを作成したりせずに、データテーブルの内容をかみそりのビューに表示できるようにしたいと考えています。現在、私は次のことを行っています。

public static List<object> GetPeople()
{
    DataTable dt = DataAccess.GetPersons();

    List<object> obj = MapDataTableToPerson(DataAccess.GetPersons());

    return obj;
}

private static List<object> MapDataTableToPerson(DataTable dt)
{
    List<object> returnClassObject = new List<object>();

    Type typeClass = CreateClassFromDT(dt);


    foreach (DataRow dr in dt.Rows)
    {
        object obj = Activator.CreateInstance(typeClass);

        foreach(string columnName in ColumnNames)
        {
            PropertyInfo property = typeClass.GetProperty(columnName);

            property.SetValue(obj, dr[columnName], null);
        }

        returnClassObject.Add(obj);
    }

    return returnClassObject;
}

コントローラからGetPeopleを呼び出してビューに渡しますが、Razorで作成されたクラスから値を取得する方法がわかりません。誰かが助けてくれれば、大いに感謝します。

4

1 に答える 1

1

DataTableモデルをビューに渡し、列と行をループします。リフレクションを使用する必要はないと思います。データベースからDataTableを取得するだけです。

于 2012-11-09T00:37:52.577 に答える