0

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

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

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

4

1 回答 1

1

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

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

于 2012-12-26T14:38:39.370 回答