Estoy utilizando Entity Framework ahora y constantemente teniendo que escribir sql en línea porque Entity Framework no admite la búsqueda de texto completo y otras características. ¿Existe un ORM que tenga muchas características que soportan consultas avanzadas? Siento que si a veces voy a escribir sql en línea, podría hacerlo todo en sql en línea. Cualquier ayuda aquí¿Cuáles son algunas buenas alternativas de Entity Framework?
Respuesta
Tome un vistazo a:
- LINQ queries in DataObjects.Net. Si eres interesante en la mayoría de las partes complejas, comienza desde la cola.
- Advanced LINQ in DataObjects.Net. Algunas consultas SQL subyacentes se muestran allí.
Se olvidó de agregar: aún no hay búsqueda de texto completo. Pero esto está en camino, ver p. http://forum.x-tensive.com/viewtopic.php?f=29&t=5657 para algunos detalles. –
DataObjects.Net tiene una implementación LINQ muy pobre y funciona MUY lentamente. Recomiendo encarecidamente utilizar NHibernate como una comparación directa: hace todo lo que hace DO.Net y lo hace todo mejor. – nathanchere
Eso está mal: basta con mirar las funciones compatibles para ver la diferencia. Entonces me gustaría escuchar una prueba de esto; por el contrario, puedo demostrar fácilmente que LINQ en NH no admite _lots_ de características compatibles con DO y otras herramientas ORM (ver, por ejemplo, tests @ ORMBattle.NET); lo mismo sobre el rendimiento. –
¿Has mirado nHibernate?
Si busca nHibernate and full text search, obtendrá una variedad de enlaces que hablan sobre ese tipo particular de implementación de búsqueda.
NHibernate es una de las alternativas O/M más grandes y de código abierto que me gusta. Puede hacer algunas cosas bastante "avanzadas" pero tiene una curva de aprendizaje empinada.
El soporte de LINQ es, bueno, uno de los peores. –
intento con nHibernate
adscripción lo que decían los otros, NHibernate. Además encontré this link re: búsqueda de texto completo y nHibernate.
Puede consultar LLBLGen Pro o Telerik's OpenAccess, pero NHibernate va a ser la solución con la comunidad más grande a su alrededor.
¿LLBLGen Pro tiene buen rendimiento? – Luke101
LLBLGen Pro es uno de los ORM más rápidos que existen: https://github.com/FransBouma/RawDataAccessBencher –
Siento que si voy a veces escribir SQL en línea que también podría hacer todo esto en SQL en línea
En serio? Al usar cualquier ORM, siempre va a llegar a situaciones en las que es mejor, más limpio o más eficiente usar SQL o llamar a un proceso almacenado. No deberías simplemente confiar ciegamente en hacer absolutamente todo por ti en todas las situaciones.
"Si tengo que escribir este procedimiento en ensamblaje para un rendimiento realmente bueno, también podría escribir el resto de mi aplicación en ensamblaje también ... " – Svish
Para el caso, es demasiado complicado hacerlo en ORM, intente seleccionar sentencias con 20 tablas y subconsultas. A veces es más simple en sql. – PeteT
La mayoría de los ORM seguirán requiriendo algunos SQL en línea de vez en cuando. NHibernate, Linq 2 Sql, etc. no son compatibles con la búsqueda de texto completo de fábrica (NHibernate tiene NHibernate.Search que utiliza Lucene.NET para realizar búsquedas de texto completo, Linq 2 Sql tiene acceso a procedimientos almacenados que puede crear y utilizar búsqueda de texto completo).
Esto no significa que deba eliminar el uso de un ORM en conjunto. Hay un ton de código de plomería repetitivo que los ORM pueden evitar que escriba y los casos de uso general son relativamente fáciles de ejecutar (por ejemplo, operaciones CRUD) con cualquier ORM.
Al igual que la mayoría de las personas aquí, yo recomendaría NHibernate, pero es posible que desee considerar su uso junto con la implementación CastleProject's ActiveRecord. NHibernate en sí mismo puede tomar un tiempo para acostumbrarse, pero cuando aplica ActiveRecord encima, las cosas se vuelven mucho más fáciles. Pude hacer una conversión EntityFramework-> NHibernate/ActiveRecord muy rápido.
¿Hay libros o realmente buenos tutoriales sobre nhibernate/activeRecored? Además, ¿cree que la vida útil del registro activo será alta? Estoy esperando apoyo para al menos 10 años. Gracias – Luke101
Lamentablemente, no es realmente, que es una especie de dolor, pero también una especie de problema. Es muy fácil hacer la mayoría de la integración de db con Active Record/NHibernate, y los tutoriales de Castle en línea te ofrecen todo lo que necesitas saber. Si falta el sitio del Castillo, una búsqueda rápida de Google/Bing hará que encuentres a mucha gente por ahí blogueando sobre cosas que han descubierto cómo hacerlo. En cuanto a cuánto tiempo durará. Es de código abierto, por lo que no tiene que preocuparse porque "se vaya", simplemente tome la fuente y compílela usted mismo, entonces siempre la tendrá. –
Soy fan de SubSonic por Rob Conery. Es (era) simple y fácil de configurar y usar.
El sitio está muerto y redirige al spam. – frankhommers
establece el enlace al repositorio git. – JonSG
Mindscape LightSpeed es un asignador o/r para.NET que supports full text search (a través de Lucene pero extensible para que pueda agregar el suyo).
También es compatible con LINQ, tiene una Visual Studio integrated designer con plena esquema de ida y vuelta de forma que pueda trabajar modelo de primera o de base de datos en primer lugar - lo que le apetezca :-)
También hay una versión gratuita que puede utilizar para decidir si es adecuado para usted.
Espero que ayude.
Puede que mire CodeFluent Entities, pero debe comprender que no se basa internamente en ninguna herramienta de ORM o de un tercero.
Entity Framework es un ORM mientras que CodeFluent Entities es una fábrica completa de software . Utiliza un enfoque de modelado natural y visual (como Entity Framework e integrado en Visual Studio) y puede generar scripts de base de datos, código de capa de datos orientada a objetos (C#, VB), servicios web e incluso componentes de UI.
- 1. ¿Cuáles son algunas buenas alternativas a la herencia múltiple en .NET?
- 2. ¿Cuáles son algunas buenas soluciones de ORM de Python?
- 3. ¿Cuáles son algunas buenas revistas de Informática/Programación?
- 4. ¿Cuáles son algunas buenas maneras de hacer el bloqueo intermachine?
- 5. ¿Cuáles son algunas buenas herramientas gratuitas de HttpDebugging?
- 6. ¿Cuáles son algunas de las alternativas del pagerank?
- 7. ¿Cuáles son algunas buenas técnicas para registrar sus aplicaciones?
- 8. ¿Cuáles son algunas alternativas más rápidas a Java2d?
- 9. ¿Cuáles son las buenas prácticas de diseño cuando se trabaja con Entity Framework
- 10. ¿Cuáles son las alternativas de membresía ASP.NET?
- 11. ¿Hay algunas alternativas buenas y modernas para Javadoc?
- 12. ¿Cuáles son sus pensamientos sobre Entity Framework 4.0?
- 13. Pasar a Mono: alternativas de Entity Framework
- 14. ¿Cuáles son las cosas buenas de baba?
- 15. ¿Cuáles son las mejores alternativas a Lucene?
- 16. ¿Cuáles son las buenas combinaciones de Scala + Web framework + Javascript framework?
- 17. ¿Cuáles son algunas buenas soluciones de autorizaciones de roles que se usan con Authlogic?
- 18. ¿Cuáles son algunas buenas soluciones de programador y corredor de trabajo .net?
- 19. ¿Cuáles son algunas buenas formas de distribuir un archivo común de hormigas para incluir en compilaciones?
- 20. ¿Cuáles son algunas buenas herramientas de análisis de lenguaje natural para Perl?
- 21. ¿Cuáles son algunas buenas maneras de implementar la eliminación de llamadas finales?
- 22. ¿Cuáles son algunas herramientas de cobertura de código para Perl?
- 23. ¿Cuáles son algunas buenas formas de estimar la similitud semántica "aproximada" entre oraciones?
- 24. ¿Cuáles son algunas buenas aplicaciones de muestra que usan Spring e Hibernate?
- 25. ¿Cuáles son algunas buenas pautas de usabilidad que un desarrollador promedio debería seguir?
- 26. ¿Cuáles son algunas buenas maneras de aprovechar los operadores bit a bit?
- 27. ¿Cuáles son algunas buenas técnicas para convertir una aplicación de Ms Access a .Net Application?
- 28. ¿Cuáles son algunas buenas y rápidas opciones de almacenamiento persistentes para los datos clave-> valor?
- 29. ¿Cuáles son algunas características útiles de TextMate?
- 30. ¿Cuáles son algunas alternativas a un motor de flujo de trabajo?
Solo mis dos centavos, pero si quiere consultas avanzadas, simplemente puede volcar la idea de ORM y usar sql en línea, y vigilar la separación entre el código de la capa de persistencia y la lógica de negocios (lo que no significa tener objetos que representan tablas en su base de datos, pero objetos que representan un intento que a su vez lee y escribe de forma transparente en la base de datos detrás de la cortina). Similar al registro activo, pero más cercano al intento. – Frunsi
Las opiniones de Luke101 aquí son interesantes: http://stackoverflow.com/questions/1691575/what-orm-for-net-should-i-use/1691790#1691790 –
Acabo de hablar demasiado pronto .. – Luke101