2010-11-12 62 views
0

我有一个小型到中型的项目工作,我想使用新的MVC 3和剃刀,但不幸的是,我将需要击中一个MSSQL 2000以及MS FoxPro 8数据库。MVC 3&Razor与遗留数据库

也许我被困在使用ADO.Net类型的数据集和webforms?什么是最好的/最简单的方式来获取类型数据集到List中,甚至只是让它们可枚举,所以我可以使用foreach等输出?

将每个数据集行映射到POCO会更好吗?

回答

3

您正在使用的数据存储与前端应用程序无关。您可以完美地使用ASP.NET MVC 3和Razor作为前端,并在存储库中抽象数据访问层。在这个仓库的实现中,您可以使用带有强类型模型对象的数据读取器的ADO.NET,遗忘旧有的DataSet。你可以使用诸如NHibernate之类的ORM来简化SQL查询和对象之间的转换。就MVC视图而言,您应该使用特定于每个视图的视图模型,而不是来自存储库的模型对象。要在不同的对象类型之间进行映射,您可以查看AutoMapper

0

ADO.NET DataReaders比数据集快得多。然后在DataReader内部加载到POCO。您还可以将DataSet行映射到POCO(如您所述)。

有没有理由不能使用实体框架?

+0

在EF 4之前,我尝试使用EF来对付我们的FoxPro db之一,但工具不支持它。 4.0的情况可能并非如此,因为我没有尝试过,我可以记得。 – JBeckton 2010-11-12 17:12:59

+0

您可以在不使用工具的情况下使用EF,但此时DataReaders可能变得更易于使用。 Darin在指出您选择的Web框架不应与您选择的DAL技术相关时也是正确的。 – Shlomo 2010-11-14 13:21:14