我在哲学上想解决的问题是 DropDownList 项(或实际上任何类型的选择列表项)是否应该成为模型的一部分,或者是否应该将它们硬编码到 UI 或业务层中。或者也许这是 ViewModel 的一个很好的用途?
对于某些类型的下拉列表,您显然必须使它们成为模型的一部分。例如,模型必须生成与客户关联的订单 ID 的下拉列表。
我称之为“查找”数据的其他类型对我来说不太清楚。例如,性别。为什么要强制往返查找用 2 个项目填充字段?也许这是过早的优化,但是如果您有 50 个字段,那么为了填充一个页面就需要进行很多往返。当然,缓存在那里可能会派上用场,但看起来很笨拙。
我还担心将所有这些查找列表添加到模型中会造成不必要的混乱。特别是如果你有很多。
也可以选择不是在 UI 中进行硬编码,而是在业务层进行硬编码。甚至可能创建一个除了填充这些数据之外什么都不做的类。
如果答案是,您仍然应该让它们成为数据模型的一部分,那么问题是您的数据模型是否应该为每组查找字段提供不同的表。如果您的数据模型有 200 或 300 个这样的字段,那就是 200 或 300 个表,这确实使维护您的数据模型更加复杂。
不久前我问了一个关于有一个通用查找表的问题,大家一致认为这是一个坏主意。但是对于有很多领域的数据量很大的应用程序,我发现自己很怀疑。
现在,我知道你们中的许多人会说“这取决于”,但我正在寻找一种“一般”的答案。一般来说,这里的经验法则是什么?