[英]Getting String Sets into Presentation Layer
我们正在使用C#编写医院信息系统,并使用NHibernate将对象映射到数据库。 MVC模式用于将业务逻辑与UI分开。 这是问题所在
如何获得可变大小的不同字符串集到UI?
例如, Contact
对象具有一个名为City
的属性,该属性保存住哪个城市的联系人。 在为该应用程序编写的国家/地区中,有80多个城市。 您如何将那些城市写到组合框中? (或数据网格,表格等)。在此示例中,城市编号是固定的。 长时间无需添加其他城市。 (如果城市列表更改,则重新编译不是问题)
例如,一个Contact
对象具有另一个名为FooBar
属性,该属性将容纳1000个不同的字符串值,并且将从该属性的组合框中选择这些值。 如果用户需要,可以扩展此集合。 如何用这些值加载组合框? (如果字符串列表静态写入组合框对象,则重新编译是一个问题)
我有以下不同的解决方案
City
对象并将值放入CITY
表的列表中 StringHolder
的类,该类具有Type
和Value
属性。 所有字符串值(包括City
和FooBar
)将只写在一个名为STRINGHOLDER
表中。 并使用NHibernate使用“ CITY”或“ FOOBAR”之类的键获取这些值。 你会选哪一个? 还是可以建议我另一个?
谢谢大家
我会为解决方案4投票。 这就是我在类似情况下总是这样做的方式。 这似乎是一个更清洁的解决方案。
如果这些位置实际上将用于任何用途,请将其放入数据库中。 如果数据“并没有真正使用”,但是提供了城市查询以改善用户界面,那么XML文件选项也不是坏方法。
通过使用,我的意思是像列出纽约的所有员工之类的东西。 如果只是显示“失效数据”,请选择需要最少工作量和最少风险的解决方案-这可能是文件选项。
您如何将List <string>用于城市列表? 将此字符串列表加载到DAL或BL中,然后将其传递给UI。
同样的解决方案也应适用于FooBar值。
如果您具有与City或FooBar关联的ID,例如NY,并且其在数据库中的数字ID为1,则可以使用KeyValuePair <TKey,TValue>。 使用泛型,您可以决定此KeyValuePair中将包含哪些数据。 城市名称或FooBar的字符串值可以是键,数字ID可以是值。
只需2美分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.