【问题标题】:How to show numerical status in MVC application如何在 MVC 应用程序中显示数字状态
【发布时间】:2009-04-07 06:57:00
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

    如果这不是一个选项,那么我会将类中的状态属性(再次通过 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
                 }
             }
        }
    }
    

    【讨论】:

    • 将 int 直接转换为枚举类型不会比 switch/case 更好吗?获取{返回(状态)状态代码; }
    • @Lucas - 如果他们可以直接转换,那么他们可以(很大程度上根据定义)使用更简单的 LINQ-to-SQL 绑定...
    猜你喜欢
    • 2017-05-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-21
    • 1970-01-01
    相关资源
    最近更新 更多