2009-07-31 40 views
2

我已经在这个问题上来回回顾,并且似乎无法找出最佳的方式来做到这一点。使用Access DB作为数据源执行ORM的最佳方法

这里的情况:

  • Access数据库(第三方产品)的数据,我需要它,从一个好数字表(18桌)
  • 理想的情况下,需要尽量获得记录成强类型的对象以某种方式,所以我可以查询与LINQ
  • LINQ to SQL类不支持ODBC提供程序(这将使我免费回家)
  • 我不需要插入/更新/删除。只选择/阅读。

我已经玩弄了将表导出到XML(这不是很多)的想法,但是我仍然面临着构建模式和生成类的问题。由于它是一个ODBC源,应该有一种方法来ORM这个,对吧?

你会如何解决这个问题?

回答

6

你可以使用nHibernate来做到这一点,因为它支持MS Access作为后端。这里是details of using nHibernate with MS Access。它使用NHibernate.JetDriver.dll来访问Jet数据引擎(MS Access)。

只要意识到MS Access不会像大多数其他带有ORM的DB后端一样提供相同的性能/支持/等等。

+0

你不会碰巧知道一个替代的下载URL来获取JetDriver.dll吗? (NHibby的网站似乎已经关闭) – Brandon 2009-07-31 01:27:15

+0

我相信你可以得到一切:http://sourceforge.net/project/shownotes.php?release_id=460590 – 2009-07-31 16:17:26

-3

我刚才已经回答我的问题...

我只能建立在服务器资源管理器的ODBC连接,以及表拖直入预定义的数据集,并使用TableAdapter.Fill()

0

的DLL文件使用NHibernate到Acccess似乎是在SourceForge上(只是谷歌搜索,不检查)
http://sourceforge.net/project/shownotes.php?release_id=460590
如果你只是查询访问,它可能是值得定义在relationnal数据库 这样的观点,你将不得不使用的解决方案稍后一种形式的缓存/快照(例如,通过将您的视图转换为每小时/ 5分钟刷新的表格就足够了。等等取决于你的期望) 如果性能下降太多。

相关问题