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