Search code examples
c#asp.netasp.net-mvclinqrazor

How to change values inside IQueryable (not database)


Question: How to change values inside IQueryable? (dont change inside database)

Query has data from database.

IQueryable<My_Model> Query = from x in _context.My_DbSet
                              select x;
my_List = await Query.AsNoTracking().ToListAsync();

Inside Query, I want to change some values. for example: if name is empty than display "Missing Name".

If location is "NYC" than display "NEW York City"

Database table / Model class

|------|----------|
| Name | Location | 
|------|----------|
| Dave | NYC      |
|------|----------|
|      | NYC      |
|------|----------|
| Bob  | LA       |
|------|----------|

Solution

  • The following code applies case when on the sql side instead of you while fetching data

    _context.My_DbSet.Select(x => new My_DbSet
    {
      Name = x.Name ?? "Missing Name"
    });
    

    old EF :)

    (from data in _context.My_DbSet
                             select new My_DbSet
                             {
                                 Name = data.Name ?? "Missing Name"
                             }).FirstOrDefault();