Я использую Entity Framework сейчас и постоянно должен писать встроенный sql, потому что инфраструктура Entity не поддерживает полнотекстовый поиск и другие функции. Есть ли там ORM, который имеет много функций, поддерживающих расширенные запросы? Я чувствую, что если я собираюсь иногда писать встроенный sql, я мог бы также сделать все это во встроенном sql. Любая помощь здесьЧто такое хорошие альтернативы Framework Entity
ответ
Взгляните:
- LINQ queries in DataObjects.Net. Если вы интересны в самых сложных частях, начинайте с хвоста.
- Advanced LINQ in DataObjects.Net. Там показаны некоторые базовые SQL-запросы.
Забыл добавить: полнотекстового поиска пока нет. Но это уже в пути, см., Например, http://forum.x-tensive.com/viewtopic.php?f=29&t=5657 для некоторых деталей. –
DataObjects.Net имеет очень плохую реализацию LINQ и выполняет ОЧЕНЬ медленно. Я бы настоятельно рекомендовал использовать NHibernate вместо этого в качестве прямого сравнения - он делает все, что делает DO.Net, и делает все лучше. – nathanchere
Это неправильно - достаточно взглянуть на поддерживаемые функции, чтобы увидеть разницу. Поэтому я хотел бы услышать доказательство этого; напротив, я могу легко доказать, что LINQ в NH не поддерживает _lots_ функций, поддерживаемых DO и другими инструментами ORM (см., например, тесты @ ORMBattle.NET); то же самое о производительности. –
Вы посмотрели nHibernate?
Если вы ищете nHibernate and full text search, вы найдете множество ссылок, которые рассказывают об определенном типе реализации поиска.
NHibernate - одна из больших альтернатив OR/M и Open Source, которые мне нравятся. Он может делать некоторые «продвинутые» вещи, но имеет крутую кривую обучения.
Поддержка LINQ есть, ну, среди худших. –
Попробуйте с nHibernate
прикомандирования, что говорили другие, NHibernate. Плюс я нашел this link re: полнотекстовый поиск и nHibernate.
Вы можете посмотреть LLBLGen Pro или Telerik's OpenAccess, но NHibernate будет решением с крупнейшим сообществом вокруг него.
Имеет ли LLBLGen Pro хорошую производительность? – Luke101
LLBLGen Pro - один из самых быстрых ORM: https://github.com/FransBouma/RawDataAccessBencher –
Я чувствую, если я буду иногда писать встроенный SQL я мог бы также сделать все это в инлайн SQL
Серьезно? При использовании любой ORM вы всегда будете сталкиваться с ситуациями, когда лучше, чище или более эффективными, использовать SQL или вызывать хранимую процедуру. Вы не должны просто слепо верить, что все это делает для вас во всех ситуациях.
«Если мне нужно написать эту процедуру в сборке для действительно хорошей производительности, я мог бы написать остальную часть моего приложения в сборка тоже ... » – Svish
Для этого просто слишком сложно сделать это в ORM, попробуйте выбрать операторы с 20 таблицами и подзапросами. Иногда это просто проще в sql. – PeteT
Большинство ORM по-прежнему требуют некоторого встроенного SQL то и дело. NHibernate, Linq 2 Sql и т. Д. Не поддерживают полный текстовый поиск из коробки (NHibernate имеет NHibernate.Search, который использует Lucene.NET для полнотекстового поиска, Linq 2 Sql имеет доступ к хранимым процедурам, которые вы можете создать, которые используют полнотекстовый поиск).
Это не значит, что вы должны отказаться от использования ORM вообще. Существует тон повторяющегося кода сантехники, который ORM могут спасти вас от написания, а общие варианты использования - относительно легко выполнить (например, операции CRUD) с любым ORM.
Как и большинство людей, я рекомендую NHibernate, но вы можете захотеть изучить его в сочетании с реализацией CastleProject's ActiveRecord. NHibernate сам по себе может немного привыкнуть, но когда вы бросаете ActiveRecord, все становится намного проще. Я смог быстро выполнить преобразование EntityFramework-> NHibernate/ActiveRecord.
Есть ли какие-нибудь книги или действительно хорошие учебники по nhibernate/activeRecored? Кроме того, как вы думаете, продолжительность активной записи будет высокой? Я ожидаю поддержки в течение 10 лет. Спасибо – Luke101
К сожалению, на самом деле это не боль, но и не проблема. Очень легко сделать большую часть интеграции db с Active Record/NHibernate, а в онлайн-учебниках Castle вы найдете все, что вам нужно знать. Если на сайте замка не хватает, то быстрый поиск Google/Bing приведет к тому, что вы обнаружите много людей, которые ведут блоги о вещах, которые они выяснили, как с этим поступить. Насколько долго это будет вокруг. Его открытый источник, поэтому вам не нужно беспокоиться о том, что он «уходит», просто возьмите источник и скомпилируйте его самостоятельно, тогда вы всегда его получите. –
Я поклонник SubSonic от Rob Conery. Он (был) прост и прост в настройке и использовании.
Сайт мертв и перенаправляется на спам. – frankhommers
установить ссылку на git repo. – JonSG
Mindscape LightSpeed - это o/r mapper для.NET, что supports full text search (через Lucene, но расширяемый, чтобы вы могли добавить свой собственный).
Он также поддерживает LINQ, имеет Visual Studio integrated designer с полной схемой круглого отключения, так что вы можете работать на модель первых или базы данных первого - в зависимости от того вашего воображения :-)
Существует также бесплатная версия, которую вы можете использовать решить, подходит ли оно вам.
Я надеюсь, что это поможет.
Возможно, вы столкнулись с CodeFluent Entities, но вам нужно понимать, что он не полагается на ORM или сторонний инструмент.
Entity Framework - это ORM, тогда как CodeFluent Entities - это полная модель программного обеспечения . Он использует естественный и визуальный подход к моделированию (например, Entity Framework и интегрирован в Visual Studio) и может генерировать сценарии базы данных, объектно-ориентированный уровень данных - код (C#, VB), веб-сервисы и даже компоненты пользовательского интерфейса.
- 1. Что такое инфраструктура Entity Framework?
- 2. Что такое альтернативы членства ASP.NET
- 3. Что такое Entity Framework с POCO
- 4. Что такое свойства навигации в Entity Framework?
- 5. Что такое граф объекта в Entity Framework?
- 6. Что такое альтернативы iframe?
- 7. Что такое альтернативы pagerank?
- 8. Что такое хорошие учебные пособия по IBM Framework Manager
- 9. Что такое хорошие алгоритмы опроса
- 10. Что такое хорошие книги UX?
- 11. Хорошие альтернативы Navicat
- 12. Какие хорошие альтернативы SoundManager2?
- 13. Перемещение в Mono: альтернативы платформы Entity Framework
- 14. Какие хорошие альтернативы ASIHTTPRequest?
- 15. хорошие альтернативы corba
- 16. Что такое некоторые альтернативы OpenID
- 17. Что такое -интерактивные альтернативы IFrames
- 18. Что такое HTTP Entity?
- 19. Что такое Entity [x]?
- 20. Что такое .NET-архитектура и что такое .NET framework?
- 21. Какие хорошие альтернативы Intel XDK?
- 22. Есть ли хорошие альтернативы WebSVN?
- 23. Что такое MV * framework?
- 24. Что такое MapReduce Framework?
- 25. Что такое log4j framework?
- 26. Что такое libobjc.A.dylib framework?
- 27. Что такое эквивалент ExecuteCommand LINQ-to-SQL в Entity Framework?
- 28. Что такое эквивалент этого запроса выбора в Entity Framework
- 29. Что такое явная транзакция базы данных в Entity Framework 6?
- 30. Что такое DeferredLoading и LazyLoading в Microsoft Entity Framework?
Только мои два цента, но если вы хотите расширенные запросы, вы можете просто сбросить идею ORM и вместо этого использовать встроенный sql и следить за разделением кода уровня вашей сети и бизнес-логики (что не означает имеющие объекты, которые представляют таблицы в вашем db, но объекты, которые представляют намерение, которое в свою очередь прозрачно читает и записывает в базу данных за занавеской). Подобно активной записи, но ближе к намерению. – Frunsi
Мнения Luke101 здесь интересны: http://stackoverflow.com/questions/1691575/what-orm-for-net-should-i-use/1691790#1691790 –
Только что сказал слишком рано .. – Luke101