Pergunta

LINQ to SQL permite que os mapeamentos de tabela sejam convertidos automaticamente para Enums, especificando o tipo da coluna - isso funciona para strings ou inteiros.

Existe uma maneira de tornar a conversão insensível a maiúsculas e minúsculas ou adicionar uma classe de mapeamento personalizada ou método de extensão à mistura para que eu possa especificar a aparência da string com mais detalhes.

As razões para fazer isso podem ser para fornecer uma convenção de nomenclatura melhor dentro de algum novo código C # moderno em um sistema onde o esquema de dados já está definido (e está sendo usado por alguns aplicativos legados) para que o texto real no banco de dados possa ' não ser alterado.

Foi útil?

Solução

Você sempre pode adicionar uma classe parcial com o mesmo nome da sua classe LinqToSql e então definir seus próprios parâmetros e funções.Eles estarão então acessíveis como parâmetros e métodos de objeto para este objeto, da mesma forma que os métodos LinqToSql gerados automaticamente são acessíveis.

Exemplo:Você tem uma classe LinqToSql chamada Car que mapeia para a tabela Car no banco de dados.Você pode então adicionar um arquivo ao App_Code com o seguinte código:

public partial class Car {
  // Add properties and methods to extend the functionality of Car
}

Não tenho certeza se isso atende totalmente ao seu requisito de alterar a maneira como os Enums são mapeados em uma coluna.No entanto, você pode adicionar um parâmetro onde as propriedades get/set funcionarão para mapear as enumerações necessárias, mantendo as coisas sem distinção entre maiúsculas e minúsculas.

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