EFCorePowerTools: DbContext DbSet returning null

Create a bug report, feature proposal, or ask a question.

NOTICE: A bug report without sufficient technical and repro details and version information WILL BE CLOSED WITHOUT ANY FURTHER ACTION.

  • Visual Studio 2022 4.8.09037)

  • Database engine: (SQL Server)

  • EF Core version in use: (e.g. EF Core 8)

  • Is Handlebars templates used: no/yes

  • Is T4 templates used: no/yes

  • Is a SQL Server .dacpac used: no/yes

Provide steps to reproduce a bug

Just trying to get a list of InboundScanLoad data.

Provide technical details

Code in order of execution

`public class PalletteCartonCountController : ControllerBase { private SIRISContextProcedures db = new SIRISContextProcedures();

[HttpGet]
[Route("PalletteCartonCount/GetLastScanForBOL/Bol")]
[ProducesResponseType(StatusCodes.Status200OK, Type = typeof(InboundScansLoad))]
[ProducesResponseType(StatusCodes.Status204NoContent, Type = typeof(InboundScansLoad))]
public ObjectResult GetLastScanForBOL(string Bol)
{
    try
    {
        //Get list of BOL's matching incoming Bol
        List<InboundScansLoad> isl = new List<InboundScansLoad>();
       ** isl = db.InboundScansLoads**
                    .Where(c => c.Order == Bol).OrderBy(c => c.Id).ToList();

        if (isl.Count() > 0)`

`namespace SpiritWMSApiCore2.Models;

public partial class SIRISContext : DbContext { string envPlatform = “”;

public SIRISContext()
{
    string environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
    envPlatform = "appsettings." + environment + ".json";
}`

` private ISIRISContextProcedures _procedures;

public virtual ISIRISContextProcedures Procedures
{
    get
    {
        if (_procedures is null) _procedures = new SIRISContextProcedures();
        return _procedures;
    }
    set
    {
        _procedures = value;
    }
}

public ISIRISContextProcedures GetProcedures()
{
    return Procedures;
}

protected void OnModelCreatingGeneratedProcedures(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<BOL_Id_CreateResult>().HasNoKey().ToView(null);
    modelBuilder.Entity<Can_DeleteResult>().HasNoKey().ToView(null);
    modelBuilder.Entity<CreateBOLManualResult>().HasNoKey().ToView(null);
    modelBuilder.Entity<GetNumberOfParsResult>().HasNoKey().ToView(null);
    modelBuilder.Entity<Load3PLCartonScans_UnitechResult>().HasNoKey().ToView(null);
    modelBuilder.Entity<PalletInfoResult>().HasNoKey().ToView(null);
    modelBuilder.Entity<ShippingBOL_SaveResult>().HasNoKey().ToView(null);
    modelBuilder.Entity<Unitech_ASNInfo_BOLResult>().HasNoKey().ToView(null);
    modelBuilder.Entity<Unitech_InventoryDataResult>().HasNoKey().ToView(null);
    modelBuilder.Entity<Unitech_PalletInventoryResult>().HasNoKey().ToView(null);
    modelBuilder.Entity<Unitech_ValidateBolDataResult>().HasNoKey().ToView(null);
    modelBuilder.Entity<Unitech_ValidateInboundDataResult>().HasNoKey().ToView(null);
}

}

public partial class SIRISContextProcedures : ISIRISContextProcedures { private SIRISContext _context = new SIRISContext(); SqlConnection con = null;

public virtual DbSet<BolvalidationControl> BolvalidationControls { get; set; }

public virtual DbSet<Carrier> Carriers { get; set; }

public virtual DbSet<CartonMasterBol> CartonMasterBols { get; set; }

public virtual DbSet<HomeOfficeSubscription> HomeOfficeSubscriptions { get; set; }

public virtual DbSet<InboundOrder> InboundOrders { get; set; }

**public virtual DbSet<InboundScansLoad> InboundScansLoads { get; set; }**`

`public class PalletteCartonCountController : ControllerBase { private SIRISContextProcedures db = new SIRISContextProcedures()

isl = db.InboundScansLoads .Where(c => c.Order == Bol).OrderBy(c => c.Id).ToList();

'public partial class SIRISContextProcedures : ISIRISContextProcedures { private SIRISContext _context = new SIRISContext(); SqlConnection con = null;

public virtual DbSet<BolvalidationControl> BolvalidationControls { get; set; }

public virtual DbSet<Carrier> Carriers { get; set; }

public virtual DbSet<CartonMasterBol> CartonMasterBols { get; set; }

public virtual DbSet<HomeOfficeSubscription> HomeOfficeSubscriptions { get; set; }

public virtual DbSet<InboundOrder> InboundOrders { get; set; }

**public virtual DbSet<InboundScansLoad> InboundScansLoads { get; set; }**'

’ catch (Exception ex) { throw; }’

Screenshot 2023-11-27 103612

Screenshot 2023-11-27 104003

Screenshot 2023-11-27 104041

Notice that db.InboundScansLoads is null

About this issue

  • Original URL
  • State: closed
  • Created 7 months ago
  • Comments: 29 (11 by maintainers)

Most upvoted comments

Ah! Glad you got it figured out.

Erik, when using the reverse engineering for the tables, after adding another table to an exisitng one that already got created, it wipes out the one that got created. I must be doing something wrong when creating the additional table.

initial after adding 2 tables: image

after adding third table. the above gets wiped out. image

i didn’t read the wiki properly. i can create multiple ones at the same time.

Thanks, I will have a look.