简单的数据操作:在实体模型或业务层中?

时间:2016-06-17 14:18:21

标签: c# asp.net-mvc model-view-controller entity-model business-layer

我正在开发一个实现传统数据/业务/演示分层方法的asp.net MVC应用程序。

我的一个实体模型(代表一个人)包含地址/联系信息,包括“州”字段。我的数据源(我几乎无法控制)以全文提供状态值(例如:“加利福尼亚”与“CA”,“佛罗里达”与“FL”等)。

我创建了一个静态助手类,我们打算用它来将全文值转换为缩写。

我的问题是,这个助手类应该在哪里引用?转换应该在哪里进行?

我看到以下选项:

  • 在模型中使用引用此静态类的访问器,并在get上执行转换。有点像:
public string State
    {
        get
        {
            return StateConverter.Abbreviate(_state);
        }
    }
  • 每当使用此实体模型

  • 时,在业务层执行转换
  • 只要显示此值,就在表示层中执行转换

我喜欢在实际模型中实现这一点的简单性(通过get访问器),但这有点像商业逻辑。其他选项意味着我将不得不在许多地方转换它(复制逻辑,遍历人员列表等)。

感谢。

1 个答案:

答案 0 :(得分:0)

将它放在模型中是可以的,因为它只是一个计算字段。此外,您的缩写(...)方法甚至不依赖于模型之外的任何数据。你有权把它放在那里。