gpt4 book ai didi

c# - 是否可以创建一个 DbContext 接口(interface)或抽象类并使用它来注入(inject)不同的 DbContext 对象?

转载 作者:行者123 更新时间:2023-12-04 12:05:35 27 4
gpt4 key购买 nike

我有一个软件产品,它的数据库是在 SQLServer 上创建的,表名和列名是由开发团队定义的,然后使用 Database First 方法将模型导入 Visual Studio,现在我们正在为其他公司开发相同类型的解决方案使用 ORACLE 并请求表和列的命名约定,因此为了不更改现有代码并使用代码优先方法,我使用所有类属性的 [Column] 属性创建了一个具有正确命名约定的 DbContext,但是现在我正在尝试创建一个接口(interface),以便我们可以注入(inject)不同的 DbContext,并且将来我们会有一个更灵活的解决方案。

我是 .Net 的新手,但我的方法是为 DbContext 创建一个抽象类,并为每个表示表的类创建一个接口(interface),因此在每个类的实现中,我可以在必要时更改表和列的名称。我的问题是,有可能吗?是一个好方法吗?

最佳答案

不,没有。但是你总是可以像这样构建一个:

interface IDbContext : IDisposable
{
DbSet<TEntity> Set<TEntity>() where TEntity : class;

Task<int> SaveChangesAsync();
}

public class MyDbContext : DbContext, IDbContext
{
public MyDbContext()
: base("myConnectionString")
{ }

//implementation
}

并注入(inject) IDbContext需要的时候。

关于c# - 是否可以创建一个 DbContext 接口(interface)或抽象类并使用它来注入(inject)不同的 DbContext 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37817522/

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