query icriterion example c# database linq nhibernate

c# - icriterion - nhibernate sql query string



Diferencias entre NHibernate, Castle, Linq-¿A quién van dirigidas? (4)

Esta respuesta dice que Linq está dirigido a un grupo ligeramente diferente de desarrolladores que NHibernate, Castle, etc.

Siendo bastante nuevo en C #, no importa todas las cosas de DB que lo rodean:

  • ¿Hay otros envoltorios de SQL más importantes, a falta de un término mejor, que NHibernate, Castle, Linq?
  • Cuáles son las diferencias entre ellos?
  • ¿A qué tipo de desarrolladores o desarrollo se dirigen?

-Adán


Cuando dices Castle, ¿supongo que te refieres a Castle Active Record?

La diferencia es que NHibernate es un OR / M y está dirigido a desarrolladores que desean enfocarse en el dominio en lugar de en la base de datos. Con linq a sql, su base de datos es preexistente y sus relaciones, y parte de la programación dependerá de cómo se defina su base de datos.

Ahora entre NHibernate y Castle ActiveRecord: son similares en cuanto a que diriges el diseño de tu aplicación desde el dominio, pero con NHibernate puedes proporcionar archivos xml de mapeo (o mapear clases con NHibernate con fluidez) donde en Active Record estás usando la convención sobre configuración (usando atributos para definir columnas y configuraciones que no encajan naturalmente). Castle Active record sigue usando NHibernate en segundo plano.

Una OR / M no es necesariamente la "única forma verdadera" de ir. Depende de tu entorno, de la aplicación que desarrolles y de tu equipo.

Es posible que también desee probar SubSonic . Es ideal para el registro activo, pero no es para el proyecto en el que desea centrarse principalmente en su dominio. Dependiendo del proyecto, generalmente utilizo NHibernate (con Castle Active Record) o Subsonic.


LINQ es solo un conjunto de nuevas características de C #: métodos de extensión, expresiones lambda, inicializadores de objetos, tipos anónimos, etc.

"LINQ to SQL" por otro lado es algo que puede comparar otros contenedores SQL.


En realidad usamos tanto Linq como NHibernate juntos (con Fluent). Si tiene un poco de paciencia con la curva de aprendizaje, entonces se enamorará rápidamente.


NHibernate y Linq To Sql son asignadores de objetos / relacionales diseñados para facilitar el tratamiento de la falta de coincidencia de impedancia encontrada entre objetos y RDBMS. Si desea obtener una aplicación ignorante comprobable y persistente, NHibernate es el camino a seguir. Siempre recomendaría NHibernate sobre Linq To Sql. Ambas herramientas están destinadas a eliminar el tratamiento del acceso a los datos. ¿Cuántas veces necesitas escribir el código de acceso a datos?

Castle es un marco de aplicación y un contenedor de inversión de control y no proporciona acceso a datos. Proporciona instalaciones para utilizar NHibernate, lo que permite una menor fricción, y también proporciona una implementación del patrón Actuve Record utilizando NHibernate.