C# 初始化时未调用EntityFramework核心'OnConfiguring'
我已经为这个问题挣扎了几天,但我仍然无法理解为什么会发生这种情况。我正在创建EntityFrameworkC# 初始化时未调用EntityFramework核心'OnConfiguring',c#,entity-framework,entity-framework-core,C#,Entity Framework,Entity Framework Core,我已经为这个问题挣扎了几天,但我仍然无法理解为什么会发生这种情况。我正在创建EntityFrameworkDbContext的一个新实例,并且没有调用方法OnConfigurang。我读过这篇文章,不幸的是,这没有帮助。 这是我的代码概要 public class MyContext : DbContext { public MyContext() : base() { } protected o
DbContext
的一个新实例,并且没有调用方法OnConfigurang
。我读过这篇文章,不幸的是,这没有帮助。
这是我的代码概要
public class MyContext : DbContext
{
public MyContext()
: base()
{
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
int a = 12;
}
}
这就是我在ASP.net中从控制器调用它的方式
MyContext b = new MyContext();
但是,未调用onconfigurang
。我正在使用EntityFramework core 2.2.4 nuget包。
对我可以尝试的事情有什么建议吗?这可能会帮助我缩小这个问题的范围?您最好使用Scaffold DbContext为您自动生成所有内容。您需要从nugets下载4 1) EntityFrameworkCore 2) EntityFrameworkCore.设计 3) EntityFrameworkCore.Tools 4) EntityFrameworkCore.SqlServer 打开工具>NuGet软件包管理器>软件包管理器控制台。并在控制台中输入以下内容
Scaffold-DbContext "Server=yourserveraddress;Database=yourdatabase;user id=youruser;password=yourpassword;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Context "YourOwnContext"
只需使用scaffoldbcontext命令。它将自动为您生成所有内容。向下滚动,直到您在下面我发布的答案中看到“Scaffold DbContext”。可以检查。你提到的帖子说它不是在对象创建时执行的,而是在你的第一次查询时执行的。在您的情况下不是这样吗?@AthanasiosKataras不,它没有到达断点或配置中的任何东西必须在稍后的某个点调用它。例如,如果您添加
\uux=b.ChangeTracker
afterMyContext b=newmycontext()代码>,此时应调用它。