- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
出于某种原因,自从我添加了一个 Application User 类后,它说我有两个我没有的上下文,但我按如下所述创建了该类:
public class ApplicationDbContextFactory : IDbContextFactory<solitudeDContext>
{
public solitudeDContext Create(DbContextFactoryOptions options)
{
var optionsBuilder = new DbContextOptionsBuilder<solitudeDContext>();
return new solitudeDContext(optionsBuilder.Options);
}
}
}
但现在它说的是:
No database provider has been configured for this DbContext. A provider can be configured by overriding the DbContext.OnConfiguring method or by using AddDbContext on the application service provider. If AddDbContext is used, then also ensure that your DbContext type accepts a DbContextOptions object in its constructor and passes it to the base constructor for DbContext.
这是我的数据库上下文层:
public class solitudeDContext : IdentityDbContext<IdentityUser>
{ public solitudeDContext(DbContextOptions<solitudeDContext> options) : base(options)
{
}
public DbSet<basketheader> BasketHeader { get; set; }
public DbSet<basketlines> BasketLines { get; set; }
public DbSet<customer> Customer { get; set; }
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
builder.Entity<ApplicationUser>(entity =>
{
entity.ToTable(name: "AspNetUser", schema: "Security");
entity.Property(e => e.Id).HasColumnName("AspNetUserId");
});
}
}
有人知道这里有什么吗?我正在使用 ASP.NET CORE 1.1。在我使用我自己的应用程序用户作为身份之前,这个编译得很好。所以我将其附在下面以防出现问题。
public class ApplicationUser: IdentityUser
{
public string FirstName { get; set; }
public string LastName{ get; set; }
public DateTime dob { get; set; }
}
我的startup.cs
:
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc();
services.AddDbContext<IdentityDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"),b=>b.MigrationsAssembly("solitudeeccore")));
services.AddIdentity<IdentityUser, IdentityRole>()
.AddEntityFrameworkStores<IdentityDbContext>()
.AddDefaultTokenProviders();
services.AddTransient<IMessageService, FileMessageService>();
services.AddAuthentication();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseIdentity();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
我唯一的猜测是,现在因为我正在使用应用程序用户身份,所以用户正在让 donet 编译器考虑两个上下文?
最佳答案
我建议您通过添加 IDesignTimeDbContextFactory
实现来解决这个问题。
// TODO: Remove.
// (part of the workaround for https://github.com/aspnet/EntityFramework/issues/5320)
public class TemporaryDbContextFactory : IDesignTimeDbContextFactory<ApplicationDbContext>
{
public ApplicationDbContext CreateDbContext(string[] args)
{
var configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.Build();
var builder = new DbContextOptionsBuilder<ApplicationDbContext>();
var connectionString = configuration.GetConnectionString("DefaultConnection");
builder.UseSqlServer(connectionString);
// Stop client query evaluation
builder.ConfigureWarnings(w =>
w.Throw(RelationalEventId.QueryClientEvaluationWarning));
return new ApplicationDbContext(builder.Options);
}
}
关于c# - 可以通过覆盖 DbContext.OnConfiguring 来配置提供者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45392363/
我正在尝试解决 Wicket 页面的一个特性 - 我有一个包含 ajax 选项卡式面板的页面,并且希望用户可以更改 URL,以便下次显示该页面时,该选项卡URL 中指定的一个。 示例: 用户将单击系统
无论如何,您是否可以让应用程序在定向后保持缓冲区,而无需手动处理配置更改。 场景基本: 当方向改变时,应保留直到最新点的视频缓冲区。 需要重新加载一个新的布局(因为纵向和横向的布局不同),因此,让应用
出于某种原因,自从我添加了一个 Application User 类后,它说我有两个我没有的上下文,但我按如下所述创建了该类: public class ApplicationDbContextFac
我遇到了不同的代码 fragment ,关于在 SQLiteHelper 中启用外键约束。我在想,如果我也想支持 API = Build.VERSION_CODES.JELLY_BEAN) {
对于我们的 ASP.NET Core 项目,我们使用包管理器控制台中的 Scaffold-DbContext 搭建现有数据库。 每次我们做脚手架时,上下文类与所有实体一起生成,它包含调用 option
我正在尝试构建一个自定义 View 位置系统。 public class myViewLocationExpander : IViewLocationExpander { private my
我正在使用 PostgreSQL 并且我有如下 ApplicationDbContext: public class ApplicationDbContext : DbContext { pr
一旦我解决了one issue与 IBM.EntityFrameworkCore ,另一个出现了。对于 DB2 和他们的 .NET 团队来说,一切都是那么艰难和痛苦...... 问题:我在同一个 VS
在我的 asp.net core 项目中,我有一个从 DbContext 派生的 ReadingContext 类。根据文档,应该为创建的每个 DbContext 实例调用 OnConfiguring
我正在 Entity Framework 7 中进行数据库优先开发。当我使用命令行从命令行生成我的 DbContext 时 dnx ef dbcontext scaffold [connection
我的 ASP.NET 核心有这个类,它首先被调用 public class Startup { public IConfiguration Configuration { get; }
刚刚开始使用 ASP.NET Core,到目前为止令人印象深刻。在生成的代码中,(见下文)。我想更改硬编码的连接字符串以从 appsettings.json 中获取它文件。 这显然是不可能的。我还没有
我有 DbContext 类以便使用迁移和创建新数据库或为现有数据库创建表。 public class ApplicationDbContext : IdentityDbContext {
我是一名优秀的程序员,十分优秀!