LINQ para strings SQL para enums

votos
17

LINQ to SQL permite mapeamentos de tabela para converter automaticamente para trás e para enumerações, especificando o tipo para a coluna - isso funciona para strings ou inteiros.

Existe uma maneira de fazer o caso de conversão insensível ou adicionar uma classe mapeamento personalizado ou método extenstion na mistura para que eu possa especificar o que a corda deve ser semelhante em mais detalhes.

As razões para isso poderia ser a fim de fornecer uma convenção de nomenclatura mais agradável dentro de algum novo código funk C # num sistema onde o esquema de dados já está definido (e está sendo invocado por alguns aplicativos legados) para que o texto real no banco de dados pode' t ser alterado.

Publicado 07/08/2008 em 17:38
fonte usuário
Em outras línguas...                            


1 respostas

votos
3

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

Exemplo: Você tem uma classe LinqToSql chamado Carque mapeia para a tabela de carro no DB. Você pode então adicionar um arquivo para App_Code com o seguinte código nele:

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

Eu não tenho certeza se este atende totalmente sua exigência de mudar a maneira que Enums são mapeados em uma coluna. No entanto, você pode adicionar um parâmetro onde as propriedades get / set vai trabalhar para mapear os enums que você precisa, mantendo coisas case-insensitive.

Respondeu 07/08/2008 em 19:23
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more