Obtendo Sets String em Camada de Apresentação
-
03-07-2019 - |
Pergunta
Estamos trabalhando em um sistema de informação hospitalar que está sendo escrito em C # e usando NHibernate para mapear objetos para banco de dados. MVC padrão está sendo usado para separar lógica de negócios da UI. Aqui está o problema,
Como você consegue conjunto diferente de tamanho variável de cordas para UI?
Por exemplo, um objeto Contact
tem uma propriedade chamada City
que mantém que vive contato cidade. No país que o aplicativo é escrito para tem mais de 80 cidades. Como você poderia escrever essas cidades para uma caixa de combinação? (Ou uma grade de dados, tabelas, ...) Neste exemplo, o número da cidade é fixo. Não há necessidade de adicionar outra cidade por um longo tempo. (Se a lista cidade alterações, recompilação não é um problema)
Por exemplo, um objeto Contact
ter uma outra propriedade chamada FooBar
que vai ser hold 1000 valores de cadeia diferentes e esses valores vai ser seleccionados a partir de uma caixa de combinação para essa propriedade. E esse conjunto pode ser cultivado se os usuários querem. Como você carregar a caixa de combinação com estes valores? (Se a lista de corda estaticamente escrito para objeto caixa de combinação, recompilação é um problema)
Eu tenho soluções diferentes como abaixo
- Todos valores de cadeia estaticamente escrito para caixa de combinação no código ou designer
- Obter os valores a partir de um arquivo de recurso
- Escrever esses valores para um arquivo XML (Na verdade o mesmo que acima, mas não há necessidade de recompilação)
- Faça um objeto
City
e obter os valores em uma lista da tabelaCITY
com NHibernate - Faça uma classe
StringHolder
chamado que tem uma propriedadeType
eValue
. Todos os valores de cadeia (incluindoCity
eFooBar
) seria escrito em apenas uma tabelaSTRINGHOLDER
nomeado. E obter esses valores com uma chave como "cidade" ou "FOOBAR" com NHibernate.
Qual deles você escolheria? Ou você poderia me sugerir outra?
Obrigado a todos
Solução
Se os locais vão realmente ser usado para qualquer coisa, obtê-los no banco de dados. Se os dados "não é realmente usado", mas cidades pesquisa é fornecido para tornar a interface de usuário melhor, então a opção de arquivo XML não é uma má maneira de ir de qualquer.
Por utilizado, eu coisas dizer, como lista todos os emplyees em Nova Iorque e coisas assim. Se é "dados mortas", apenas para ser exibido, ir para as soluções que requerem a menor quantidade de trabalho e menos risco -. Que pode ser a opção de arquivo
Outras dicas
Eu votaria para solução nº 4. Essa é a maneira que sempre fiz isso em situações semelhantes. Parece apenas uma solução mais limpa.
Como você se sente de usar List
A mesma solução deve ser bom para FooBar valoriza também.
No caso de você ter IDs associados Cidade ou FooBar, diz NY e sua identificação numérica no DB é 1, então você pode usar KeyValuePair
Apenas 2 centavos.