Лучший способ сделать ORM с БД Access в качестве источника данных - PullRequest
2 голосов
/ 31 июля 2009

Я изучал эту проблему и не могу понять, как лучше всего это сделать.

Вот ситуация:

  • Доступ к базе данных (сторонний продукт) с необходимыми мне данными из большого числа таблиц (18 таблиц)
  • В идеале, нужно как-то попытаться получить записи в строго типизированных объектах, чтобы я мог выполнять запросы с помощью LINQ
  • Классы LINQ to SQL не поддерживают провайдера ODBC (это освободило бы меня домой)
  • Мне НЕ нужно вставлять / обновлять / удалять. Только выберите / прочитайте.

Я поиграл с идеей простого экспорта таблиц в XML (это не так уж и много), но потом я все еще сталкиваюсь с проблемой построения схемы и генерации классов. Так как это источник ODBC, должен быть способ ORM, верно?

Как бы вы решили это?

Ответы [ 3 ]

6 голосов
/ 31 июля 2009

Вы можете сделать это с помощью nHibernate, поскольку он поддерживает MS Access в качестве бэкэнда. Вот подробности использования nHibernate с MS Access . Он использует NHibernate.JetDriver.dll для доступа к движку данных Jet (MS Access).

Просто поймите, что MS Access не даст вам такую ​​же производительность / поддержку / и т. Д., Как у большинства других БД с ORM

0 голосов
/ 31 июля 2009

Кажется, что dll для использования NHibernate для Acccess находится на sourceForge (просто гуглит, не проверяет)
http://sourceforge.net/project/shownotes.php?release_id=460590
Если вы просто запрашиваете доступ, возможно, стоит определить представления в реляционной базе данных. Таким образом, у вас будет решение для использования формы кэша / снимка позже (например, путем преобразования ваших представлений в таблицу, которую вы обновляете каждый час / 5 минут и т. Д. В зависимости от ваших ожиданий) если производительность снижается слишком сильно.

0 голосов
/ 31 июля 2009

Я только что ответил на свой вопрос ...

Я могу просто установить соединение ODBC в обозревателе серверов, перетащить таблицы прямо в предопределенный набор данных и использовать TableAdapter.Fill ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...