Pergunta

Eu estou usando o SQL Express 2008 e vs2008, escrevendo em c #.

Eu tenho uma tabela db com uma coluna de Geografia nele, no qual eu preciso colocar gps dados que coletou. Quando eu tentei criar um mapeamento Entity-Quadro para esta tabela, ele simplesmente ignorou a coluna com algum aviso sobre não ser capaz de mapear esses tipos de colunas. Eu, então, olhou para projeto nHibernate.Spatial, mas parece que ele só traduz os tipos de geometria, e não a Geografia. Sem sorte lá. Já me disseram que eu posso usar uma exibição com lançando a Geografia para VarBinary, e, em seguida, na classe entidade criada adicionar outra propriedade que desserializa a volta binário em Geografia. Eu acho que vai trabalhar para a leitura dos dados do db, mas eu também precisa inserir essas linhas no meu db, e eu não posso adicionar linhas à vista. Existe algum outro truque que pode usar para facilmente ler e escrever Geografia dados do meu db, no meu código c #?

Foi útil?

Solução

Eu não sei muito sobre EF, mas NHibernate permite estendê-lo do quadro tipo usando IUserType. Há um pouco sobre ele em Ray Houston Blog .

Eu usei com sucesso esta para criar um tipo para que os usos XmlSerialization a um campo XML, com base em exemplo de Ayende

Outras dicas

Neste momento Entity Framework v1 não suporta SQL UDT -. 2008 Tipo Spacial é UDT

Você pode armazenar seus dados long / lat usando WKB (byte [] / varbinary).

Como uma nota lateral eu não notar qualquer apoio à UDT durante o Microsoft MIX09 para a próxima versão (1.5 CTP). Talvez eu perdi alguma coisa.

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