【发布时间】:2021-02-11 20:10:42
【问题描述】:
我有一个generic method,这个方法会收到一个dbcontext 类型。
这个泛型方法应该从接收到的上下文类型创建一个新实例并返回它。
一个 Dbcontext 示例:
class SchoolContext:DbContext
{
public SchoolContext(DbContextOptions<SchoolContext> dbContextOptions):base(dbContextOptions)
{
}
public DbSet<Branche> Branches { get; set; }
public DbSet<Student> Students { get; set; }
}
我尝试了什么:
public static TContext GetInstance<TContext>(string connectionString) where TContext:DbContext
{
var optionsBuilder = new DbContextOptionsBuilder();
optionsBuilder.UseSqlServer(connectionString);
TContext context = Activator.CreateInstance(typeof(TContext), optionsBuilder.Options) as TContext;
return context;
}
我得到的错误:
System.MissingMethodException: 'Constructor on type 'SchoolContext' not found.'
请问我该如何解决这个问题?
【问题讨论】:
-
先生,您建议的解决方案是什么,适合您的时间
标签: c# generics reflection dbcontext activator