我们目前有一个主要依赖于存储过程的应用程序。临时表的使用很多。这是一个非常大的应用程序。
面对这种情况,我想使用Entity Framework或Linq2Sql进行重写。我可能会考虑使用Fluent Hibernate或Subsonic,因为我过去曾广泛使用它们。
由于临时表的使用,我在使用Linq2Sql生成存储过程的返回类型时遇到了问题,我认为将所有存储过程从临时表更改为内存表是很麻烦的。 / p>
考虑到我想要做出的两个选择,2中哪一个是最佳选择,为什么?如果我的选择非常愚蠢,请提供替代方案。
编辑: 问题和变化的原因是数据访问层不存在并且是在10年前构建的。我们目前仍然遇到很多问题。我不想透露太多,但如果你看到它,你的眼睛会开始流血:)。
答案 0 :(得分:4)
这可能不是您所追求的答案,但听起来这主要是将相关代码隔离到“新”数据访问层。
如果通过接口抽象出数据访问,则可以使用您喜欢的任何数据访问实现。我只是不确定这与Enity Framework之类的内容有什么关系。
我采取这条道路的原因是它允许一个非常好的干净分离关注点,使得应用程序随着时间的推移更容易使用,并且它不会以牺牲性能为代价(根据我的经验)
作为第一步 - 而不是重写,我希望这样做 - 只需获取一个数据层,并抽象出来,以便你可以使用它。
与此同时,您可以使用Enity Framework之类的功能进行一些概念验证工作,这样当您准备重构新的DAL时,您就可以获得可靠的信息来做出决定。
请记住,“执行素质”需要与“进化”素质相平衡:)
答案 1 :(得分:0)
你有没有想过LLBLGen Pro?这是一个商业解决方案,但相当便宜,我相信它比这两个替代方案要好得多。我认为Frans Bouma实际上也是SO用户,但他们的论坛也非常有用。