我有一个软件产品,数据库是在 SQLServer 上创建的,表和列名称是由开发团队定义的,然后使用数据库优先方法将模型导入到 Visual Studio,现在我们正在为其他公司开发相同类型的解决方案使用 ORACLE 并请求表和列的命名约定,因此为了不更改现有代码并使用代码优先方法,我使用所有类属性的 [Column] 属性创建了一个具有正确命名约定的 DbContext,但是现在我正在尝试创建一个接口,以便我们可以注入不同的 DbContext,并且将来我们有一个更灵活的解决方案。
我是 .Net 的新手,但我的方法是为 DbContext 创建一个抽象类,并为每个表示表的类创建一个接口,因此在每个类的实现中,我可以根据需要更改表和列名称。我的问题是,这可能吗?这是一个好方法吗?
不,没有。但你总是可以像这样构建一个:
interface IDbContext : IDisposable
{
DbSet<TEntity> Set<TEntity>() where TEntity : class;
Task<int> SaveChangesAsync();
}
public class MyDbContext : DbContext, IDbContext
{
public MyDbContext()
: base("myConnectionString")
{ }
//implementation
}
并注入IDbContext
需要的时候。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)