在带有实体框架的ASP.NET MVC应用程序中使用硬编码类型

本文关键字:应用程序 类型 编码 MVC NET 实体 框架 ASP | 更新日期: 2023-09-27 18:00:00

在使用实体框架的ASP.NET MVC应用程序中,处理/组织/使用硬编码类型的好方法是什么?

我所说的硬编码类型是指在业务逻辑中定义的静态类型,这些类型不可由用户管理,只能由开发人员管理。即产品类型、客户状态等。

我正在努力实现以下几点:

  1. 与实体框架数据绑定配合良好
  2. 将能够很容易地填充MVC视图下拉列表(假设我的ViewModel能够拥有该类型的列表)
  3. 将在SQL中存储一个可靠的值(无论是字符串还是Id)
  4. 将能够在整个业务逻辑中使用if/case语句

使用枚举:例如,假设我有一个Product实体,它有一个Type字段。我的第一直觉是直接在名为ProductType的类中创建一个枚举及其值。然而,如果我一直使用枚举,我担心我将无法完成上面的4个要求。

使用全局常量在过去,我还创建了一个GlobalConstants文件,只创建了一堆常量字符串,这样我就可以在整个BusinessLogic中使用它们。然后在数据库中,我会创建一个TypeList表(TypeName、TypeValue、FriendlyName等),存储所有这些值。因此,基本上TypeList表必须始终与GlobalConstants保持同步,否则就会发生故障。

有些东西告诉我枚举非常适合这些硬编码类型

在带有实体框架的ASP.NET MVC应用程序中使用硬编码类型

只需为ProductType创建一个模型。示例:

产品类型:{int id,string name}

在产品模型类中添加:

public ProductType Type { get; set; }

所以基本上您可以将类型存储在数据库中。