【问题标题】:Separating DAL and Domain in Entity Framework?在实体框架中分离 DAL 和域?
【发布时间】:2012-12-26 11:58:28
【问题描述】:

我在搞乱 EF4.1。我想将我的域和我的 DAL 分开。我的域包含基本实体类和存储库接口。 DAL 包含这些存储库的实现。

我的问题是我必须编辑我的域才能使用 EF。例如,具有“地址”的“人员”现在具有“地址 ID”和“虚拟地址”。我现在也在我的领域层中保留注释。我对此不太满意,因为这意味着我正在更改应用程序的核心以使用 EF。我还引入了不相关的数据,因为地址不需要在我的应用程序上下文中具有 ID;仅在数据库中。如果明天我编写一个新的 DAL 层,从 Web 服务或 XML 文件或其他东西中获取我的对象怎么办?

有没有办法解决这个问题?我正在考虑将 EF 实体保留在 DAL 层中并将它们映射到存储库中的域类,但这不会对性能造成巨大影响吗?

【问题讨论】:

    标签: .net entity-framework


    【解决方案1】:

    我认为将您的 EF 实体放在 DAL 中并将您的存储库放在其他地方没有意义,更不用说将这些 EF 实体转换为域类会不可避免地影响性能。

    相反,您可能需要考虑使用 EF Fluent API,如 herehere 所示。然后,您可以将 DbContext 类放入您的 DAL 中,将所有 Fluent 映射放在那里,并让您的域类保持干净和闪亮。

    【讨论】:

    • 感谢您的链接!它可能会起作用。别担心,实体和存储库是在一起的,但现在我可以将 EF 排除在我的域之外。
    猜你喜欢
    • 2011-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多