如何在MVC应用程序中显示数字状态

时间:2009-04-07 06:57:00

标签: c# linq-to-sql model-view-controller

我正在构建一个基于MVC的新应用程序并考虑LINQ-To-SQL / Entity Framework。我有一个具有数字状态的实体(0 - 打开,1 - 活动,2 - 关闭),我应该把逻辑放在视图/控制器或自动生成的模型中显示适当的字符串(Enum ??) ? 我应该将所有这些逻辑移到业务层吗? 我应该为LINQ-To-SQL构建的部分类添加业务逻辑和新属性(显示字符串状态)吗?

1 个答案:

答案 0 :(得分:2)

实际上,LINQ-to-SQL可以直接将整数绑定到枚举(数据库中的int(等)或[n][var]char列数据),因此一个简单的答案就是创建一个枚举(在您的数据/存储库层中),并更改dbml(通常通过设计器),以便它使用状态列的(完全限定的)枚举类型。

如果这不是一个选项,那么我会将类中的status属性(再次通过dbml)重命名为StatusCode,并添加一个返回首选表示的部分类(作为枚举或字符串)即

partial class YourType { // only do this if direct enum mapping isn't an option
    public Status Status { // could also be string
         get {
             switch(StatusCode) {
                  case 0: return Status.Open;
                  // etc
             }
         }
    }
}