在带有实体框架的ASP.NET MVC应用程序中使用硬编码类型
本文关键字:应用程序 类型 编码 MVC NET 实体 框架 ASP | 更新日期: 2023-09-27 18:00:00
在使用实体框架的ASP.NET MVC应用程序中,处理/组织/使用硬编码类型的好方法是什么?
我所说的硬编码类型是指在业务逻辑中定义的静态类型,这些类型不可由用户管理,只能由开发人员管理。即产品类型、客户状态等。
我正在努力实现以下几点:
- 与实体框架数据绑定配合良好
- 将能够很容易地填充MVC视图下拉列表(假设我的ViewModel能够拥有该类型的列表)
- 将在SQL中存储一个可靠的值(无论是字符串还是Id)
- 将能够在整个业务逻辑中使用if/case语句
使用枚举:例如,假设我有一个Product实体,它有一个Type字段。我的第一直觉是直接在名为ProductType的类中创建一个枚举及其值。然而,如果我一直使用枚举,我担心我将无法完成上面的4个要求。
使用全局常量在过去,我还创建了一个GlobalConstants文件,只创建了一堆常量字符串,这样我就可以在整个BusinessLogic中使用它们。然后在数据库中,我会创建一个TypeList表(TypeName、TypeValue、FriendlyName等),存储所有这些值。因此,基本上TypeList表必须始终与GlobalConstants保持同步,否则就会发生故障。
有些东西告诉我枚举非常适合这些硬编码类型
只需为ProductType创建一个模型。示例:
产品类型:{int id,string name}
在产品模型类中添加:
public ProductType Type { get; set; }
所以基本上您可以将类型存储在数据库中。