我正在尝试使用Entity Framework Core。因此,在课程中。我安装了现有的数据库对象。因此,应用程序生成了带有所有DBSet对象的EmployeeContext.cs文件。然后就生成了OnConfiguring()重载方法。
现在,我在Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddAuthorization(options =>
{
//options.AddPolicy("RequireManagerOnly", policy =>
// policy.RequireRole("Manager"));
options.AddPolicy(
"ApiUser", policy =>
policy.Requirements.Add(
new ApiUserVerification(5)));
});
services.AddSingleton<IAuthorizationHandler,
ApiRoleHandler>();
var connectionStrings = Configuration.GetConnectionString("ScreeningContext");
services.AddDbContext<EmployeeContext>(options => options.UseSqlServer(connectionStrings));
}
EmployeeContext.cs
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!optionsBuilder.IsConfigured)
{
#warning To protect potentially sensitive information in your connection string, you should move it out of source code. See http://go.microsoft.com/fwlink/?LinkId=723263 for guidance on storing connection strings.
optionsBuilder.UseSqlServer("server details");
}
}
但是现在,当我在上下文类中评论OnConfiguring()重载方法并发布POSTMAN的get请求时,我收到500-内部服务器错误。如果我取消注释OnConfiguring(),则可以发布请求。我不明白为什么?尽管我在Startup.cs中注册了DbContext]
任何人都可以提供我所想念的地方。
谢谢
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
设置您的DBContext。
但是由于您使用的是AspNet Core,因此最好在Startup.cs中进行所有设置
public void ConfigureServices(IServiceCollection services)
如果您不删除此代码:
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!optionsBuilder.IsConfigured)
{
#warning To protect potentially sensitive information in your connection string, you should move it out of source code. See http://go.microsoft.com/fwlink/?LinkId=723263 for guidance on storing connection strings.
optionsBuilder.UseSqlServer("server details");
}
}
它将覆盖您在startup.cs中所做的设置,并使用“ optionsBuilder.UseSqlServer(” server details“);”作为您的连接字符串。
您可能也曾在启动时输入过错字。
services.AddDbContext<Employee>(options => options.UseSqlServer(connectionStrings));
也许应该是:
services.AddDbContext<EmployeeContext>(options => options.UseSqlServer(connectionStrings));