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

  1. Todos valores de cadeia estaticamente escrito para caixa de combinação no código ou designer
  2. Obter os valores a partir de um arquivo de recurso
  3. Escrever esses valores para um arquivo XML (Na verdade o mesmo que acima, mas não há necessidade de recompilação)
  4. Faça um objeto City e obter os valores em uma lista da tabela CITY com NHibernate
  5. Faça uma classe StringHolder chamado que tem uma propriedade Type e Value. Todos os valores de cadeia (incluindo City e FooBar) seria escrito em apenas uma tabela STRINGHOLDER 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

Foi útil?

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 para uma lista de City? Coloque esta lista de strings em sua DAL ou BL e, em seguida, passá-lo para interface do usuário.

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 . Com os genéricos você pode ditar o que os dados vai nesse KeyValuePair. nome da cidade ou valor da cadeia de FooBar pode ser a chave e numérico ID pode ser de valor.

Apenas 2 centavos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top