在 PackageManagerConsole 中添加迁移时,EF Core IEntityTypeConfiguration class 中未命中断点
Breakpoint not hit in EF Core IEntityTypeConfiguration class on add-migration in PackageManagerConsole
我正在一个小型测试项目中做一些发现,并试图在配置定义中设置断点 class。
public class TripExpenseComparisonEntityTypeConfiguration : IEntityTypeConfiguration<TripExpenseComparison>
{
public void Configure(EntityTypeBuilder<TripExpenseComparison> builder)
{
builder.HasKey(u => u.Id)
.HasName("PK_TravelExpense");
builder.OwnsOne(vo => vo.BudgetedTripExpense, exp =>
{
var x = from p in exp.GetType().GetProperties() where p.PropertyType == typeof(decimal) select p;
exp.Property(u => u.AllowNegatives)
.IsRequired();
exp.Ignore(u => u.TotalExpenses);
});
... rest removed
当我 运行 从包管理器控制台添加迁移时,在 DataAccess 项目中,它 运行 是整个迁移(正确地)除了它没有达到设置的断点之外行
>exp.Property(u => u.AllowNegatives)
.IsRequired();
断点在这种class中不起作用吗?还是他们在添加迁移事件中没有受到攻击?
您可以在所需位置之前添加此行Debugger.Launch();
。它启动并将调试器附加到进程。
请参阅文档 here。
您 运行 通过代码和调试使用 DbMigrator
迁移的另一个选项。
如果您的 Startup.cs
中有 Database.Migrate();
调用,那么断点应该被击中。
如果您这样做了,但仍然没有,请确保您在 DbContext 中应用配置 class。
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.ApplyConfigurationsFromAssembly(Assembly.GetAssembly(typeof(MyDbContext)));
}
其中 MyDbContext
是此 class 的名称或与您的 IEntityTypeConfiguration<T>
配置在同一程序集中的 class。
我正在一个小型测试项目中做一些发现,并试图在配置定义中设置断点 class。
public class TripExpenseComparisonEntityTypeConfiguration : IEntityTypeConfiguration<TripExpenseComparison>
{
public void Configure(EntityTypeBuilder<TripExpenseComparison> builder)
{
builder.HasKey(u => u.Id)
.HasName("PK_TravelExpense");
builder.OwnsOne(vo => vo.BudgetedTripExpense, exp =>
{
var x = from p in exp.GetType().GetProperties() where p.PropertyType == typeof(decimal) select p;
exp.Property(u => u.AllowNegatives)
.IsRequired();
exp.Ignore(u => u.TotalExpenses);
});
... rest removed
当我 运行 从包管理器控制台添加迁移时,在 DataAccess 项目中,它 运行 是整个迁移(正确地)除了它没有达到设置的断点之外行
>exp.Property(u => u.AllowNegatives)
.IsRequired();
断点在这种class中不起作用吗?还是他们在添加迁移事件中没有受到攻击?
您可以在所需位置之前添加此行Debugger.Launch();
。它启动并将调试器附加到进程。
请参阅文档 here。
您 运行 通过代码和调试使用 DbMigrator
迁移的另一个选项。
如果您的 Startup.cs
中有 Database.Migrate();
调用,那么断点应该被击中。
如果您这样做了,但仍然没有,请确保您在 DbContext 中应用配置 class。
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.ApplyConfigurationsFromAssembly(Assembly.GetAssembly(typeof(MyDbContext)));
}
其中 MyDbContext
是此 class 的名称或与您的 IEntityTypeConfiguration<T>
配置在同一程序集中的 class。