1

私はMVCアーキテクチャでいくつかの助けが必要です。 Userという名前のオブジェクトに対して、次のアーキテクチャを使用します。MVCアーキテクチャ - パターン

UserRepository - > IUserRepository - > UserServiceの - > IUserService - > UserControllerで

Userオブジェクトは、私のデータベースから来ていると私はEntityFrameworkを使用しています。私はユーザーReturn_All_Users()のリストを返す関数を持っています。返されるフィールドの1つが「UserType」です。これは数字で表示されますが、Index.aspxページにリストを表示すると、文字列として表示したいと思います。 「UserType」の数字は、「管理者」のような数字に沿った文字列を見つけるために辞書を調べる必要があり、この文字列をインデックスページに表示します。

どうすればいいですか?私は現在、この機能を使用しています:

public IEnumerable<User> Return_All_Users() 
{ 
    //my code here 
} 

私は同様の質問には別のポストがあったが、それは私のIEnumerableが文字列ではなく、ユーザーオブジェクトを返すべきであることが示唆されました。私はそれを試みましたが、私はダイナミックモデルで作業しています。私はそれをしたくありませんでした。ダイナミックモデルの操作方法もわかっていないので、これを行うにはより良い方法があると思います。

私のUserServiceでこれが発生する必要がありますか? NewUserという新しいクラスを作成し、UserTypeを文字列として定義し、新しいNewUserをインスタンス化してUserの値を渡す必要があるかもしれません。 UserTypeが渡される前に、私は辞書を見てキーの正しい値を取得します。

これを行う必要がありますか、それとも良い方法がありますか?


この質問を投稿した後、私はちょうどストアドプロシージャでこれを行うことを考えました。データベーステーブルから直接データを検索するのではなく、データベースのストアドプロシージャを使用してデータを返すことがあります。

答えて

0

ビューモデルのユーザービューを作成し、そのビューがそのデータをどのように使用するかを表現するようにフォーマットしました。この種のマッピングを行う場所に応じて、リポジトリまたはコントローラ内のUserからUserViewへのマッピングを実行できます。

+0

私はグーグルでモデルを検索しています。私はこれを行う方法はわかりませんが、私があなたが提案したことをやることができるかどうかを見てみましょう。 – MikeB55

+0

ビューモデルは、必要な情報と一致するプロパティを持つ単なるクラスです。エンティティに返されるUserTypeプロパティがあると述べました。 UserViewクラスに、整数ではなく文字列であるUserTypeプロパティを持たせることができます。あなたのコントローラには、UserオブジェクトをUserViewオブジェクトに変換するロジックがあります。 UserViewをバインドすると、UserTypeプロパティが正しいデータ型になります。 – Novus

+0

私はあなたの考えが好きです。私は詳細を読んできましたが、ビューにモデルオブジェクトを直接渡すのではなく、ビューモデルを使用してデータを表示することをお勧めします。今や意味をなさないご協力いただきありがとうございます。 – MikeB55

関連する問題