【问题标题】:Entity Framework - extra dynamicly calculated properties for business objects/models (ASP.NET MVC)实体框架 - 业务对象/模型的额外动态计算属性 (ASP.NET MVC)
【发布时间】:2011-01-26 00:04:48
【问题描述】:
假设我有包含以下字段的 Customer 模型:Id、FirstName、LastName。我想在列表视图中显示客户列表。为此,我使用我的服务方法返回 List 以在视图中进行迭代。
但现在我还想为每个客户显示一些附加信息,例如信用。此信息不存储在数据库的特定字段中,而是必须根据 Transacitons 中的数据计算得出。我应该在哪里做这个计算?
我可以有额外的字段,称为 Credit for Customer 模型,并在 getter 中完成,但我不确定这是否是最好的方法,尤其是在 od Model 内部我无法访问 EF 上下文。
【问题讨论】:
标签:
asp.net-mvc
entity-framework
business-objects
【解决方案1】:
假设您的问题措辞正确,这实际上只是为了展示,而不是为了业务流程(这将是一个完全不同的问题)...
在您的演示模型中执行此操作。添加您需要的输入,投影到它们上,然后计算输出。这是一个非常简单的例子。现实世界更复杂。
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);
}