- ABP Framework version: v4.3
 - UI type: Angular
 - DB provider: EF Core
 - Tiered (MVC) or Identity Server Separated (Angular): Seperated
 - Exception message and stack trace:
 - Steps to reproduce the issue:"
 
I have a background job where I am attempting to select records from a trap table. When the code gets to _list = query.ToList() I get the error System.NullReferenceException: 'Object reference not set to an instance of an object.' in List.cs. What am I doing wrong? Any ideas of why this error is occuring?
foreach (var row in values)
                {
                    IQueryable<Trap> queryable = await _trapsSheet.GetQueryableAsync();
                    var query = queryable.Where(x => x.Asset.Equals(ConvertInt64(row[0].ToString())));
                   
                    if(query.Any())
                    {
                        try
                        {
                            var _c1 = MapValues(row);
                            List<Trap> _list = new List<Trap>();
                            _list = query.ToList();
                            Trap _result = ObjectMapper(_c1, _list[0]);
                            mTrapExist.Add(_result);
                        }catch(Exception ex)
                        {
                            System.Diagnostics.Debug.WriteLine(ex.Message);
                        }
                       
                    }
                    else
                    {
                        try
                        {
                            Trap _result = MapValues(row);
                            System.Diagnostics.Debug.WriteLine(_result.Asset.ToString());
                            mTrap.Add(_result);
                        
                        }catch(Exception ex)
                        {
                            System.Diagnostics.Debug.WriteLine(ex.ToString());
                        }
                        
                    }
                }
                        18 Answer(s)
- 
    0
hi
Can you share the full error stack?
 - 
    0
 - 
    0
Maliming. I did. That is all it is giving me.
 - 
    0
Can you check this
(x => x.Asset.Equals(ConvertInt64(row[0].ToString())))Try to use constant expressions.
 - 
    1
 - 
    0
Maybe the
x.Assetis null. Can you try to include it? or ignore it? - 
    0
 - 
    1
The funny part is, I can insert records just fine with this code. This is within the same class for the background job.
try { Trap _result = MapValues(row); System.Diagnostics.Debug.WriteLine(_result.Asset.ToString()); mTrap.Add(_result);
}catch(Exception ex) { System.Diagnostics.Debug.WriteLine(ex.ToString()); }
if(mTrap.Count > 0) { await _trapsSheet.InsertManyAsync(mTrap, true); await uow.SaveChangesAsync(); }
 - 
    0
https://docs.abp.io/en/abp/5.0/Entity-Framework-Core#explicit-lazy-loading https://docs.microsoft.com/en-us/ef/core/querying/related-data/eager
 - 
    0
Not sure I am understanding. Here is what I have
private readonly IUnitOfWorkManager _unitOfWorkManager; private readonly IRepository<Trap, Guid> _trapsSheet; private readonly IObjectMapper _objectMapper; private readonly IEmailSender _emailSender; private readonly ITemplateRenderer _templateRenderer; private static readonly string[] Scopes = { SheetsService.Scope.Spreadsheets };
public TrapLoader(IUnitOfWorkManager unitOfWorkManager, IRepository<Trap, Guid> traps, IObjectMapper objectMapper, IEmailSender emailSender, ITemplateRenderer templateRenderer) { _unitOfWorkManager = unitOfWorkManager; ** _trapsSheet = traps**; _objectMapper = objectMapper; _emailSender = emailSender; _templateRenderer = templateRenderer; }
 - 
    0
You need to
includeyour navigation entity.https://support.abp.io/QA/Questions/2301#answer-c47f204b-9a58-626b-5c6a-3a00e7a19105
 - 
    0
I'll give that a try in the AM. I'll tell you know what happens.
 - 
    0
👍
 - 
    0
I went in and attempted to use .Include, but it appears .Include is not part of the IQueryable. A little background. I am using the IQueryable because when I inject the service and attempt to use the service directly in a background job I get Access denied because the user isnt authenticated, so instead I am accessing the data using the IRepository<Trap, Guid>. I have done this in other background jobs without any issues, but this one is throwing an exception and not sure why.
 - 
    0
So I regenerated the table with a different name with ABP SUITE and now things seem to be working. What I would like to understand is why did the original not work properly as it was generated with ABP Suite?
 - 
    0
You can compare the code to see. I'm not sure.
 - 
    0
Since this is mainly ABP code. Where should I look and compare?
 - 
    0
You can check the difference in git. before and after.