una tutorial trigger tablas tabla saber quien para modifico genérico español con como cambios bitacora auditoria auditar .net nhibernate orm fluent-nhibernate schema

.net - tutorial - trigger genérico para auditar cambios en una tabla



¿Cómo actualizar los esquemas de tabla de base de datos con la generación de esquema de NHibernate? (2)

Estoy intentando descubrir cómo usar la configuración de NHibernate con la asignación para actualizar los esquemas de tabla, en lugar de descartarlos y volver a crearlos.

Actualmente estoy usando NHibernate.Tool.hbm2ddl.SchemaExport obj con FluentNHibernate para generar el esquema de la base de datos para una base de datos mysql. Si bien no puedo decir que es un gran problema, cada vez que llamo a SchemaExport.Execute en la base de datos, va a soltar todas las tablas y luego volver a SchemaExport.Execute .

Lo que sería mucho más genial es si pudiera simplemente actualizar las estructuras de tabla existentes conservando los datos siempre que sea posible. Pero realmente no quiero usar un producto comercial, o un generador de código, porque no me gusta la generación de código en general, y no necesito esto lo suficiente como para considerar pagarlo. Así que con suerte cualquier respuesta tendría en cuenta estas advertencias.



El objeto SchemaUpdate proporciona la actualización del esquema de la base de datos, aparentemente generando y ejecutando una serie de sentencias SQL UPDATE (así como también instrucciones de restricción) cuando es void Execute(bool script, bool doUpdate) . Se llama a la función void Execute(bool script, bool doUpdate) . La clase SchemaUpdate está en el espacio de nombres NHibernate.Tool.hbm2ddl , que se puede encontrar en el archivo Nhibernate.dll.

SchemaUpdate se menciona en el capítulo 15 de la guía del juego de herramientas nhibernate 1.0.2, aquí (sección 15.1.5).

Las "Preguntas Frecuentes de NHibernate" tenían (el enlace ya expiró) un ejemplo más completo de cómo usar SchemaUpdate:

[Test] public void Update_an_existing_database_schema() { _cfg = new Configuration(); _cfg.Configure(); _cfg.AddAssembly(Assembly.LoadFrom("DataLayer.dll")); var update = new SchemaUpdate(_cfg); update.Execute(true, false); }