我正在研究一组类来表示实体框架中的资产注册。为了保持问题简单,我构建了三个类:
资产
包含适用于所有资产类型的字段,例如资产 ID、序列号、购买日期
计算机
从资产派生,添加特定于计算机资产的字段,例如 MAC 地址、主机名
监视器
从资产派生,添加特定于监控资产的字段,例如大小
在纯 C# 中,我可以通过调用来实例化这些类,例如:
Computer DansComputer = new Computer(){ AssetID=12345, SerialNumber="12345", Hostname="DanComputer"};
我用于捕获新资产的 UI 要求用户输入有关其新资产(来自资产)类的基本数据,然后区分说,例如,他们正在创建计算机资产。我想知道这是否不够优雅......在目前的形式中,执行插入的伪代码,无论资产类型如何:
- 捕获有关资产类的数据
- 通过 EF 将这些数据提交到 Asset 表
- 重定向到取决于资产类型的视图,以捕获特定于类型的数据,例如新的计算机视图
- 检索先前提交的资产,将其转换为适当的类型(例如计算机)并将计算机特定字段投影到新对象。
- 将计算机提交到数据库。
我不喜欢那里的视图之间的提交。
用户选择他们希望添加的资产类型(例如计算机、打印机)然后显示创建新计算机/打印机的视图是否是一种“有效”方法?这个解决方案对我来说听起来不太理想,因为:
- 我需要为每种类型的资产绘制一个 MVC 视图,这对我来说似乎违反了 DRY 原则......
- 我需要手动保留所有可能的资产类型的列表并显示某种 UI 以允许用户选择他们想要使用的类型。
但是,我想不出任何其他方法来制作这个 UI。
我在这里错过了一些非常明显的东西吗?