n具有实体框架的分层Asp.net应用程序

时间:2015-01-24 03:34:13

标签: c# asp.net entity-framework

我面临与下面的问题相同的问题

Entity Framework 6 and Unit Of Work… Where, When? Is it like transactions in ado.net?

根据答案,我不应该在EF上创建抽象层,但我希望保持业务层独立。所以我决定选择最后一个选项,添加TransactionScope。但我读到,它会影响性能。我已将IsolationLevel保持为ReadCommitted。但我不确定表现。

那么我如何使用EF而不将其依赖性添加到业务层。

我的业务对象与实体对象不同。

1 个答案:

答案 0 :(得分:1)

如果您不想依赖EF,那么您将不得不将其抽象出来。您提到的回复中的海报认为这是太多的代码,但如果您想将数据层实现与业务层分离,那么它就是一个必要的恶魔。

从历史上看,我已经使用了IUnitOfWork生成的相对通用的IRepository实现,例如:

uow.Get<IRepositoryType>()

通过使用IoC容器(最近使用TinyIoC),我们可以轻松处理和交换我们的实现,并将我们的域对象与数据对象分开。