Как использовать разных провайдеров для Linq для юридических лиц? - PullRequest
2 голосов
/ 22 мая 2010

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

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

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

Ответы [ 2 ]

2 голосов
/ 23 мая 2010

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

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

1 голос
/ 24 мая 2010

Мне очень нравится метафора из Скотта Хансельмана : «Я не сантехник, но я знаю, что такое S-Bend ».

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

ADO.Net, EF, Linq2Sql, TXT-файлы, XML и т. Д. И т. Д. И т. Д.

Посмотрите образцы Nerd Dinner и Music Store . Посмотрите, как они получают доступ к данным (как они проводят модульные тесты, Mocking Framework, IOC и т. Д.)

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

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

...