如何使用内部DbContext?我想知道如何隐藏DbContext对象,以便我的项目的其他库不能直接访问.
我把我的DbContext作为库中的内部,显然应该工作,但是当我运行应用程序时,会出现以下错误:
目标上下文"上下文"不是可构造的.添加默认构造函数或提供IDbContextFactory的实现
有人能帮助我吗?
我的数据层实现是:
[DbConfigurationType(typeof (ConfigContext))]
internal class Context : DbContext
{
internal Context()
: base(ConfigDataBase.GetSqlServerString(ConfigZnfce.Instance.SqlServerInstance))
{
}
//More code below
}
public class ConfigContext: DbConfiguration
{
public ConfigContext()
{
SetDefaultConnectionFactory(new System.Data.Entity.Infrastructure.LocalDbConnectionFactory("v11.0"));
SetProviderServices("System.Data.SqlClient", System.Data.Entity.SqlServer.SqlProviderServices.Instance);
SetDatabaseInitializer(new CreateDatabaseIfNotExists<Context>());
SetDatabaseInitializer(new MigrateDatabaseToLatestVersion<Context, Configuration>());
}
}
Run Code Online (Sandbox Code Playgroud)
我希望所有其他库都需要通过一个工作单元和存储库才能对数据库进行任何操作
[解决了]
我作为内部上下文和构造函数上下文和public一起离开,如下面的代码所示:
[DbConfigurationType(typeof (ConfigContext))]
internal class Context : DbContext
{
public Context()
: base(ConfigDataBase.GetSqlServerString(ConfigZnfce.Instance.SqlServerInstance))
{
}
//More code below
}
Run Code Online (Sandbox Code Playgroud)