如何解决无法从存储库中调用DBContext构造函数
我正在寻找创建一个SignalR Hub,以使用SQLDependency实时获取SQL记录更新。 我使用EFCore Scaffolding数据库以及DBContext创建模型,并使用存储库模式来从DB检索数据。
private Func<DBAContext> _contextFactory;
public Repository(Func<DBAContext> ContextFactory)
{
this._contextFactory = ContextFactory;
}
public someMethod()
{
using (var context = _contextFactory())
{
return context.Account.LastOrDefault();
}
}
这是问题所在:在调用上下文时,出现“找不到类型为DBContext的构造函数。
DBAContext.cs
public partial class DBAContext : DbContext
{
public DBAContext(DbContextOptions<DBAContext> options)
: base(options)
{
}
public virtual DbSet<Account> Account { get; set; }
}
.
.
.//OnConfiguring
.//Autogenerated onModelCreating
在这里发生错误:
public static void AddDbContextFactory<TDataContext>(this IServiceCollection services,string
connectionString) where TDataContext : DbContext
{
services.AddSingleton<Func<TDataContext>>((ctx) =>
{
var options = new DbContextOptionsBuilder()
.UseSqlServer(connectionString)
.Options;
return () => (TDataContext)Activator.CreateInstance(typeof(TDataContext),options);
});
}
}
Activator.CreateInstance无法解析DBAContext类上的构造函数。
Startup.cs
services.AddDbContextFactory<DBAContext>
(Configuration.GetConnectionString("DefaultConnection"));
如果有人可以向我解释这个问题,我将非常感谢 在此先感谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。