Pregunta

Estoy usando sql express 2008 y vs2008, escribiendo en c #.

Tengo una tabla db con una columna de Geografía en ella, en la que necesito colocar los datos gps que recopilé. Cuando intenté crear una asignación de Entity-Framework para esta tabla, simplemente ignoró la columna con una advertencia acerca de no poder asignar dichos tipos de columnas. Luego miré el proyecto nHibernate.Spatial, pero parece que solo traduce los tipos de geometría, no la geografía. No hay suerte allí. Me han dicho que puedo usar una vista para convertir la Geografía a VarBinary, y luego, en la clase de entidad creada, agregue otra Propiedad que deserializa el binario de nuevo a Geografía. Supongo que eso funcionará para leer los datos de la base de datos, pero también necesito insertar esas filas en mi base de datos, y no puedo agregar filas a la vista. ¿Hay algún otro truco que pueda usar para leer y escribir fácilmente datos de Geografía desde mi db, en mi código c #?

¿Fue útil?

Solución

No sé mucho acerca de EF, pero NHibernate le permite extender su tipo de marco utilizando IUserType . Hay un poco al respecto en Blog de Ray Houston: .

Lo he usado exitosamente para crear un tipo para eso usa XmlSerialization a un campo Xml, basado en ejemplo de Ayende

Otros consejos

En este momento, Entity Framework v1 no admite SQL UDT: el tipo espacial 2008 es UDT.

Puede almacenar sus datos largos / latinos usando WKB (byte [] / varbinary).

Como nota al margen, no noté ningún soporte para UDT durante el Microsoft MIX09 para la próxima versión (1.5 CTP). Tal vez me haya perdido algo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top