0

我们在 ASP.NET MVC 3 中有一个应用程序,由于遗留和移植的原因,它完全使用传统的 ADO.NET 作为数据层编写。

我现在的任务是向这个网站添加一些报告,这些报告可能会导致一些极其复杂的查询。

使用 EF Power Tools 对代码优先模型进行逆向工程并将其与我们当前的 ADO.NET 模型并排使用是否有任何缺陷?这样做可以让我使用 LINQ 来查询我需要的数据,从而大大加快编写每个报告所需的时间。我需要关闭数据上下文初始化,因为我们当前的模型会这样做,但是尝试这样做是否存在任何明显的风险或问题?

如果它有任何相关性(我知道 EF 5 有很多新功能),我们正在使用 .NET 4 并且将在它启动后立即开始迁移到 .NET 4.5。

4

1 回答 1

0

我认为这是一件非常明智的事情。您还可以使用数据库优先模型,您可以在数据库更改时刷新该模型,并且不会尝试初始化数据库。

由于您将使用只读上下文,您可以通过将s的MergeOption属性设置为 来优化查询过程。这减少了开销,因为上下文不会跟踪生成对象的更改。ObjectQueryMergeOption.NoTracking

一个问题可能是,如果数据库发生更改,则需要进行更多维护,但我认为没有用于报告旧数据层的样板查询代码的情况远远超过了这一点。

有一天 :) 你甚至可能决定使用 EF 模型来显示用户想要在 UI 中过滤的数据,并使用旧数据层来执行 CUD 命令。(有点像 CQRS)。

于 2012-06-07T14:56:57.177 回答