He creado un servicio WCF REST que utiliza nhibernate para conectarse a la base de datos sql de la edición compacta del servidor. Por lo tanto puedo configurar el origen de datos como NHibernate:ruta relativa para el archivo de base de datos en el archivo de configuración
<property name="connection.connection_string">Data Source=[Path]\MyDb.sdf</property>
La molestia que estoy corriendo en ahora es que no puedo encontrar la manera de evitar tener que escribir la ruta absoluta en la configuración. Esto es molesto ya que mantengo el archivo de la base de datos como parte del proyecto en la carpeta App_Data. Así que no debería tener que actualizar la ruta, p. cuando implemente el proyecto en otra ubicación, incluso si la ruta absoluta es diferente.
Usando procmon Noté que si no escribo una palmadita absoluta en la configuración del origen de datos, se interpreta como relativo a la ruta: * C: \ Archivos de programa (x86) \ Archivos comunes \ Microsoft Shared \ DevServer \ 10.0 *.
¿Es posible que nhibernate suponga que queremos relacionar la ruta con la carpeta bin de la aplicación en su lugar (que es donde termina mi App_Data/MyDb.sdf)?
Just FYI para cualquier otra persona puede usar esto para generar otros parientes, es decir: '| DataDirectory | \ .. \ bin \ File.sdf'. Si tan solo pudiera votar esto más, gracias, perfecto. ¿Conoce alguna otra palabra clave de ruta que admita la cadena de conexión o solo es esa? –
Merece la pena señalar que la sugerencia anterior de Paul funciona, a pesar de lo que se ha dicho en otras publicaciones de SO. – marc
Sí, un enlace a la referencia donde están enterradas las definiciones de palabras clave sería genial ... (cite su trabajo) – FizxMike