3

Id、FirstName、LastName というフィールドを持つ Customer モデルがあるとします。リストビューで顧客のリストを表示したい。このために、List を返すサービス メソッドを使用して、ビューで反復します。

しかし、ここでは、クレジットなど、各顧客の追加情報も表示したいと考えています。この情報はデータベースの特定のフィールドに保存されるのではなく、Transacitons のデータに基づいて計算する必要があります。この計算はどこで行えばよいでしょうか?

Credit for Customer モデルと呼ばれる追加のフィールドをゲッターで作成できますが、これが最善の方法であるかどうかはわかりません。特に od モデル内では EF コンテキストにアクセスできません。

4

1 に答える 1

5

あなたの質問が正しく表現されていると仮定すると、これは実際には表示用であり、ビジネスプロセス用ではありません(まったく別の質問になります)...

プレゼンテーション モデルでそれを行います。必要な入力を追加し、それらに投影して、出力を計算します。これは非常に些細な例です。現実の世界はもっと複雑です。

class Person // entity
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

class PersonPresentation
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string DisplayName 
    {  
        get 
        { 
            return string.Format("{0} {1}", this.FirstName, this.LastName);
        }
    }
}

public ActionResult DisplayPeople()
{
    var model = from p in Repository.AllPeople()
                select new PersonPresentation
                {
                    FirstName = p.FirstName,
                    LastName = p.LastName
                };
    return View(model);
}
于 2010-03-10T17:34:51.873 に答える