3

假设我有具有以下字段的客户模型:Id、FirstName、LastName。我想在列表视图中显示客户列表。为此,我使用我的服务方法返回 List 以在视图中进行迭代。

但现在我还想为每个客户显示一些附加信息,例如信用。此信息不存储在数据库的特定字段中,而是必须根据 Transacitons 中的数据计算得出。我应该在哪里做这个计算?

我可以有一个名为 Credit for Customer 模型的额外字段,并在 getter 中执行此操作,但我不确定这是否是最好的方法,尤其是在 od Model 内部我无法访问 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 回答