相关疑难解决方法(0)

EF Core:方法“ProcessModelFinalized”没有实现

我在尝试使用实体框架核心获取 DbContext 对象中 DbSet 的信息时遇到错误。

我的 DbContext 对象看起来像这样:

public class CatalogueContext : DbContext
{
    public DbSet<ConnectorCatalogueItemConv> CatalogueItemConvs { get; set; }

    public CatalogueContext(DbContextOptions<CatalogueContext> options)
        : base(options)
    {

    }

    public CatalogueContext()
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

我试图通过调用一个接收泛型类型 T 的方法来实例化上下文,该类型可能是 DbContext 的子类:

public T GetContext<T>() where T: DbContext, new()
{
    var optionsBuilder = new DbContextOptionsBuilder<T>();
    var connectionString = Configuration.GetConnectionString(ExternalTablesKey);
    optionsBuilder.UseSqlServer(connectionString);
    return Activator.CreateInstance(typeof(T), optionsBuilder.Options) as T;
}
Run Code Online (Sandbox Code Playgroud)

通过使用 Microsoft.Extensions.Configuration 正确获取连接字符串,因此问题不存在。

最后,我调用此方法并尝试获取声明如下的 DbSet 上的任何记录:

 public void SomeMethod()
 {
     using (var db = this.GetContext<CatalogueContext>())
     {
         var val …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework-core asp.net-core

6
推荐指数
2
解决办法
3620
查看次数

从另一个项目添加对 ApiAuthorizationDbContext 的迁移 - EF Core

我正在尝试ApiAuthorizationDbContext从另一个 .NET Core 项目添加迁移,但无法从设计时实例化它,因为我不知道如何获取第二个参数IOptions<OperationalStoreOptions>

这是我的 DbContext 构造函数(它继承了我ApiAuthorizationDbContext接受 TUser、TRole、TKey 的自定义)

public class ApplicationDbContext : ApiAuthorizationDbContext<ApplicationUser, ApplicationRole, Guid>
{
    public ApplicationDbContext (DbContextOptions options, IOptions<OperationalStoreOptions> operationalStoreOptions)
        : base(options, operationalStoreOptions)
    {
    }
Run Code Online (Sandbox Code Playgroud)

这是我的 DesignTimeDbContextFactory

public class DesignTimeDbContextFactory : IDesignTimeDbContextFactory<KontestDbContext>
{
    public ApplicationDbContext CreateDbContext(string[] args)
    {
        IConfiguration configuration = new ConfigurationBuilder()
            .SetBasePath(Directory.GetCurrentDirectory())
            .AddJsonFile("appsettings.json").Build();

        var builder = new DbContextOptionsBuilder<ApplicationDbContext>();
        var connectionString = configuration.GetConnectionString("DefaultConnection");
        builder.UseSqlServer(connectionString);

        return new ApplicationDbContext(builder.Options, ????); <--- how to resolve the IOptions<OperationStoreOptions> here ??
    }
}
Run Code Online (Sandbox Code Playgroud)

在 …

c# entity-framework entity-framework-core .net-core

5
推荐指数
2
解决办法
1600
查看次数

从控制器配置连接字符串 (ASP.NET Core MVC 2.1)

我想从控制器配置连接字符串,但我没有找到任何函数来执行此操作。

我有:

public class tstController : Controller
{
    private readonly contextTst _context;

    public tstController(contextTst context)
    {
        _context = context;
        _context.Database.**????**
    }
}
Run Code Online (Sandbox Code Playgroud)

这是可能的?

多谢!

c# asp.net-core-mvc asp.net-core

2
推荐指数
1
解决办法
1万
查看次数