Как использовать различные операторы LINQ для сущностей?


Я пытаюсь немного больше ознакомиться с программированием баз данных, и я рассматриваю различные способы создания уровня доступа к данным для приложений. Я попробовал несколько способов, но есть такие джунгли различных технологий баз данных, что я не знаю, чему научиться. Например, я пробовал использовать наборы данных с адаптерами таблиц. Используя это, я могу довольно легко переключать провайдера данных (программируя против интерфейсов, таких как IDbConnection). Это единственное, чего бы я хотел. достигать. Но я также знаю, что все говорят о LINQ,и я пытаюсь узнать это немного лучше. Поэтому я попытался использовать классы Linq to Sql в качестве уровня доступа к данным, но, по-видимому, это не является независимым от поставщика (работает только для SQL Server).

Итак, я прочитал о Entity Framework (которая, как и Linq to SQL, очевидно, уже получила свою долю трепки...). Все говорят, что он должен быть независимым от провайдера, но как? Я опробовал учебник, чтобы создайте модель данных сущности, но единственными поставщиками на выбор были SQL Server/Express. Просто для целей обучения я хотел бы знать, как использовать entity framework с MS Access/OleDb.

Кроме того, я был бы признателен за некоторый вклад в то, что является предпочтительной технологией базы данных для доступа к данным. Это LINQ все еще после всех трепок, или вы должны просто использовать наборы данных, потому что они независимы от поставщика? Любые указатели на то, что изучать было бы здорово, потому что это просто слишком много, чтобы учиться это все, если я не собираюсь использовать его в конце концов...!

2 2

2 ответа:

Единственными поставщиками на выбор были SQL Server / Express

Платформа .NET Framework включает только поставщиков EF для SQL Server и SQL Server Compact. Если вам нужен доступ к другой СУБД, вам необходимо установить стороннего поставщика. Например, есть бесплатный поставщик для SQLite , с поддержкой конструктора. Существует также несколько (коммерческих) провайдеров , созданных Devart, для различных СУБД. Насколько мне известно, для OleDB или ODBC нет поставщиков EF...

Мне очень нравится метафора из Скотта Хансельмана: "я не водопроводчик, но я знаю, что такое S-образный изгиб."

Лично я думаю, что вы должны иметь рабочие знания обо всем разнообразии способов доступа к данным.

ADO.Net, EF, Linq2Sql, txt файлы, xml и т. д.

Посмотрите на Ботанический Ужин и музыкальный магазин образцы. Смотрите, как они обращаются к данным (как они делают модульные тесты, издевательская платформа, IOC и т.д.)

Что касается поставщиков данных, лично я бы избегал доступа. Так же легко запустить установку Sql Express или Mysql и лучше выглядеть в вашем резюме.

(для чего это стоит, этот вопрос обсуждает настройку mysql для EF.)