Лучший способ сделать ORM с БД Access в качестве источника данных

2

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

Здесь ситуация:

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

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

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

Теги:
linq
orm
odbc

3 ответа

6
Лучший ответ

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

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

  • 0
    Вы случайно не знаете альтернативный URL для загрузки, чтобы получить JetDriver.dll? (Сайт NHibby, кажется, не работает)
  • 0
    Я полагаю, что вы можете получить все от: sourceforge.net/project/shownotes.php?release_id=460590
0

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

-3

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

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

  • 0
    Это на самом деле не ORM - просто стандартный доступ к данным. Это все, что вам действительно нужно?
  • 0
    Я как бы хотел настоящий ORM, но я получаю строго типизированные объекты для доступа только для чтения, так что я в порядке ...
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню