簡體   English   中英

將字符串集放入表示層

[英]Getting String Sets into Presentation Layer

我們正在使用C#編寫醫院信息系統,並使用NHibernate將對象映射到數據庫。 MVC模式用於將業務邏輯與UI分開。 這是問題所在

如何獲得可變大小的不同字符串集到UI?

例如, Contact對象具有一個名為City的屬性,該屬性保存住哪個城市的聯系人。 在為該應用程序編寫的國家/地區中,有80多個城市。 您如何將那些城市寫到組合框中? (或數據網格,表格等)。在此示例中,城市編號是固定的。 長時間無需添加其他城市。 (如果城市列表更改,則重新編譯不是問題)

例如,一個Contact對象具有另一個名為FooBar屬性,該屬性將容納1000個不同的字符串值,並且將從該屬性的組合框中選擇這些值。 如果用戶需要,可以擴展此集合。 如何用這些值加載組合框? (如果字符串列表靜態寫入組合框對象,則重新編譯是一個問題)

我有以下不同的解決方案

  1. 將所有字符串值靜態寫入代碼或設計器中的組合框
  2. 從資源文件獲取值
  3. 將這些值寫入XML文件(實際上與上面相同,但無需重新編譯)
  4. 使用NHibernate創建一個City對象並將值放入CITY表的列表中
  5. 創建一個名為StringHolder的類,該類具有TypeValue屬性。 所有字符串值(包括CityFooBar )將只寫在一個名為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM