gpt4 book ai didi

c# - 如何删除对其他层中 Entity Framework 的引用

转载 作者:太空宇宙 更新时间:2023-11-03 21:23:07 25 4
gpt4 key购买 nike

我有一个 3 层的应用程序:

  • 用户界面
  • 领域服务
  • 数据

数据层使用 EF 6(代码优先)连接到数据库。

我已经创建了我的 DbContext 实现的接口(interface):

public interface IMyDbContext
{
DbSet<TEntity> Set<TEntity>() where TEntity : class;
int SaveChanges();
void Dispose();
}

public class MyDbContext : DbContext, IMyDbContext
{
//...
public DbSet<Account> Accounts { get; set; }
public DbSet<Module> Modules { get; set; }
public DbSet<User> Users { get; set; }
//...
}

我想从领域服务层中删除对 EF 的引用,这就是我使用依赖注入(inject)将此接口(interface)注入(inject)领域服务层的原因。

但是,EF 二进制文件中描述了 DbSet 类,因此这行不通。

我想使用这个抽象而不是实际的 EF 实现,但我被卡住了。我试过使用 IQueryable 代替 DbSet,但这没有用。

我不想使用(通用)存储库,但我想在我的域逻辑中重新使用 EF 的 DbSet 和 DbContext 功能。

最佳答案

您正在寻找的是 Unit of Work 模式。它将帮助您防止将数据逻辑泄漏到领域层。 Here是一个很好的教程。

关于c# - 如何删除对其他层中 Entity Framework 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29265156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com