[英]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.