Существуют ли бесплатные (бесплатные) поставщики баз данных, отличных от MS SQL (например, MySQL или SQLite), которые работают с LINQ и поддерживают генерацию динамических запросов SQL? Например. table.Count()
генерирует что-то вроде SELECT COUNT(*) FROM table
и не загружает сначала всю таблицу, а затем подсчитывает строки.
Динамический LINQ с другими базами данных
Ответы (3)
Вот проект DBLinq: http://code.google.com/p/dblinq2007/
DbLinq — это поставщик LINQ, который позволяет использовать общие базы данных с API, близким к Linq to SQL. В настоящее время поддерживает (в порядке появления): MySQL, Oracle, PostgreSQL, SQLite, Ingres, Firebird.
Я полагаю, что эти провайдеры выполняют Count()
так, как вы описываете, зависит от качества провайдера. Предположительно предпринимаются некоторые усилия по оптимизации.
Ознакомьтесь с ADO.NET Entity Framework. Он поддерживает MySQL через поставщиков данных ADO.NET и LINQ to Entities (аналогично LINQ to SQL). Будучи инструментом Microsoft, он имеет хорошую интеграцию и поддержку Visual Studio.
Можете ли вы также объяснить, почему вы хотите поддерживать эти базы данных?
NHibernate поддерживает множество баз данных и имеет недавно выпущенный поставщик Linq.