2

我正在研究一组类来表示实体框架中的资产注册。为了保持问题简单,我构建了三个类:

资产

包含适用于所有资产类型的字段,例如资产 ID、序列号、购买日期

计算机

从资产派生,添加特定于计算机资产的字段,例如 MAC 地址、主机名

监视器

从资产派生,添加特定于监控资产的字段,例如大小


在纯 C# 中,我可以通过调用来实例化这些类,例如:

Computer DansComputer = new Computer(){ AssetID=12345, SerialNumber="12345", Hostname="DanComputer"};

我用于捕获新资产的 UI 要求用户输入有关其新资产(来自资产)类的基本数据,然后区分说,例如,他们正在创建计算机资产。我想知道这是否不够优雅......在目前的形式中,执行插入的伪代码,无论资产类型如何:

  1. 捕获有关资产类的数据
  2. 通过 EF 将这些数据提交到 Asset 表
  3. 重定向到取决于资产类型的视图,以捕获特定于类型的数据,例如新的计算机视图
  4. 检索先前提交的资产,将其转换为适当的类型(例如计算机)并将计算机特定字段投影到新对象。
  5. 将计算机提交到数据库。

我不喜欢那里的视图之间的提交。

用户选择他们希望添加的资产类型(例如计算机、打印机)然后显示创建新计算机/打印机的视图是否是一种“有效”方法?这个解决方案对我来说听起来不太理想,因为:

  1. 我需要为每种类型的资产绘制一个 MVC 视图,这对我来说似乎违反了 DRY 原则......
  2. 我需要手动保留所有可能的资产类型的列表并显示某种 UI 以允许用户选择他们想要使用的类型。

但是,我想不出任何其他方法来制作这个 UI。

我在这里错过了一些非常明显的东西吗?

4

1 回答 1

1

我认为最简单的方法是改变你的步骤:

  1. 给用户一个选择:它是什么资产
  2. 重新编辑此资产的正确操作
  3. 使用资产的公共部分渲染视图(例如使用局部视图)并为选定的部分指定
  4. 检索数据并将其提交到数据库。
于 2013-04-09T09:49:58.367 回答