存储库模式用于从特定数据库和对象关系映射技术(如EF)抽象使用。因此,如果我决定这样做,我可以很容易地将(例如)我的Entity框架映射替换为Linq to SQL。存储库模式与实体框架
但是,当我使用EF我有我的实体类从模型 - 也就是他们从该视觉图生成。如果我在存储库中使用这个生成的实体类,然后决定用其他东西替换EF,那么我将删除该可视化实体图,这意味着还要删除类吗?
我正在处理的一点是,我的存储库将依赖实体框架,即在数据访问层上,因为它将使用由EF生成的类。
我该如何消除这种依赖性?
另请注意,我主要使用EF是因为它能够从该视觉图生成所有内容 - 我只是设计图并让它为所有外键生成数据库等。我非常喜欢这一点,不想考虑SQL命令。
@Ladislav Mrnka首先我不同意“不要设计你的应用程序,因为可能发生的事情”。我总是试图使我的代码更加健壮和防守,并且通常会在以后证明这是一个很好的决定。几乎没有多余的行意味着在重构和调试时节省了数小时。如果“由于可能发生的事情而不设计你的应用程序”是真的,那么许多项目根本不会使用存储库(除了那些需要从一开始就支持2种永久存储技术的应用程序之外)。其次,我只是感觉不好,因为我需要一些DAL来包装它。 – drasto 2011-03-23 09:05:00
@Ladislav Mrnka +1为T4模板和这些链接。有关于此的更多资源? – drasto 2011-03-23 09:12:40
@drasto:如果你足够熟练地对你的架构做出专业决定,那么这种方法就没问题。但是在回答和阅读许多有关EF和知识库的问题之后,我只是认为许多开发人员都在构建他们的应用程序。从一开始就有两种数据访问技术是引入存储库的一个很好的理由,但您在问题中没有提到它。 – 2011-03-23 09:15:37