使用Access DB作为数据源进行ORM的最佳方法

时间:2009-07-31 01:09:46

标签: c# .net linq orm odbc

我在这个问题上来回走动,似乎无法找到最好的方法。

情况如下:

  • 使用我需要的数据访问数据库(第三方产品),从大量表格(18个表格)
  • 理想情况下,需要尝试以某种方式将记录转换为强类型对象,以便我可以使用LINQ进行查询
  • LINQ to SQL类不支持ODBC提供程序(这可以让我免费回家)
  • 我不需要插入/更新/删除。只选择/阅读。

我已经玩弄了将表格导出到XML的想法(并没有那么多)但是我仍然面临着构建模式和生成类的问题。因为它是一个ODBC源,所以应该有一种ORM方法,对吗?

你会如何解决这个问题?

3 个答案:

答案 0 :(得分:6)

您可以使用nHibernate执行此操作,因为它支持MS Access作为后端。这是details of using nHibernate with MS Access。它使用NHibernate.JetDriver.dll来访问Jet数据引擎(MS Access)。

只是意识到MS Access不会像使用ORM那样为大多数其他数据库后端提供相同的性能/支持/等。

答案 1 :(得分:0)

将NHibernate用于Acccess的dll似乎在sourceForge上(只是谷歌搜索,而不是检查)
http://sourceforge.net/project/shownotes.php?release_id=460590
如果您只是查询访问权限,则可能值得在关系数据库中定义视图 通过这种方式,您可以获得以后使用缓存/快照形式的解决方案(例如,将您的视图转换为每小时/ 5分钟刷新的表格等等,具体取决于您的期望) 如果性能下降太多。

答案 2 :(得分:-3)

我刚刚回答了我自己的问题......

我可以在服务器资源管理器中建立ODBC连接,并将表直接拖到预定义的DataSet中并使用TableAdapter.Fill()