Jerry Sheppard
asked on
I want to keep all the values in the left table (USER) but if there are no assets for the user keep the record. Just a null asset value will display. When I do the group by for the null asset
I have a linq group by question...
When I do the group by on assets, the record does not display at all. I want to keep it. the user may or may not have an asset.
example..
Name Role Asset #
John Smith office manager 01-569450
John Smith office manager 01-569450
John Smith office manager 01-345454
John Smith office manager null
I want
John Smith office manager 01-569450
John Smith office manager 01-345454
John Smith office manager null <- Keep after the group by*
Dim query = (From element In query1).OrderBy(Function(a ) a.AssetNumber)
.GroupBy(Function(a) a.AssetNumber)
.Select(Function(a) New UserViewModel With {.ID = a.FirstOrDefault.ID,
.FirstName = a.FirstOrDefault.FirstName ,
.MiddleInitial = a.FirstOrDefault.MiddleIni tial,
.LastName = a.FirstOrDefault.LastName,
.RoleName = a.FirstOrDefault.RoleName,
.EmailAddress = a.FirstOrDefault.EmailAddr ess,
.PhoneNumber = a.FirstOrDefault.PhoneNumb er,
.PhoneNumberExt = a.FirstOrDefault.PhoneNumb erExt,
.EmployeeID = a.FirstOrDefault.EmployeeI D,
.UserName = a.FirstOrDefault.UserName,
.CountyID = a.FirstOrDefault.CountyID,
.CountyName = a.FirstOrDefault.CountyNam e,
.Cost = a.FirstOrDefault.Cost,
.OperationalUnit = a.FirstOrDefault.Operation alUnit,
.LocationID = a.FirstOrDefault.LocationI D,
.LocationName = a.FirstOrDefault.LocationN ame + "[" + a.FirstOrDefault.LocationC ode + "]",
.IsActive = a.FirstOrDefault.IsActive,
.Classificationcode = a.FirstOrDefault.Classific ationcode,
.Programeffortcode = a.FirstOrDefault.Programef fortcode,
.ProgramElement = a.FirstOrDefault.ProgramEl ement,
.AssetNumber = a.FirstOrDefault.AssetNumb er,
.AssetReceivedDate = a.FirstOrDefault.AssetRece ivedDate,
.AssetModel = a.FirstOrDefault.AssetMode l,
.AssetMake = a.FirstOrDefault.AssetMake ,
.AssetType = a.FirstOrDefault.AssetType ,
.AssignedTo = a.FirstOrDefault.FirstName + " " + a.FirstOrDefault.LastName} )
.Where(Function(a) Not String.IsNullOrEmpty(a.Ass etNumber))
.OrderBy(Function(a) a.LastName)
.ThenBy(Function(a) a.FirstName)
.ThenBy(Function(a) a.AssetNumber)
.ToList()
When I do the group by on assets, the record does not display at all. I want to keep it. the user may or may not have an asset.
example..
Name Role Asset #
John Smith office manager 01-569450
John Smith office manager 01-569450
John Smith office manager 01-345454
John Smith office manager null
I want
John Smith office manager 01-569450
John Smith office manager 01-345454
John Smith office manager null <- Keep after the group by*
Dim query = (From element In query1).OrderBy(Function(a
.GroupBy(Function(a) a.AssetNumber)
.Select(Function(a) New UserViewModel With {.ID = a.FirstOrDefault.ID,
.FirstName = a.FirstOrDefault.FirstName
.MiddleInitial = a.FirstOrDefault.MiddleIni
.LastName = a.FirstOrDefault.LastName,
.RoleName = a.FirstOrDefault.RoleName,
.EmailAddress = a.FirstOrDefault.EmailAddr
.PhoneNumber = a.FirstOrDefault.PhoneNumb
.PhoneNumberExt = a.FirstOrDefault.PhoneNumb
.EmployeeID = a.FirstOrDefault.EmployeeI
.UserName = a.FirstOrDefault.UserName,
.CountyID = a.FirstOrDefault.CountyID,
.CountyName = a.FirstOrDefault.CountyNam
.Cost = a.FirstOrDefault.Cost,
.OperationalUnit = a.FirstOrDefault.Operation
.LocationID = a.FirstOrDefault.LocationI
.LocationName = a.FirstOrDefault.LocationN
.IsActive = a.FirstOrDefault.IsActive,
.Classificationcode = a.FirstOrDefault.Classific
.Programeffortcode = a.FirstOrDefault.Programef
.ProgramElement = a.FirstOrDefault.ProgramEl
.AssetNumber = a.FirstOrDefault.AssetNumb
.AssetReceivedDate = a.FirstOrDefault.AssetRece
.AssetModel = a.FirstOrDefault.AssetMode
.AssetMake = a.FirstOrDefault.AssetMake
.AssetType = a.FirstOrDefault.AssetType
.AssignedTo = a.FirstOrDefault.FirstName
.Where(Function(a) Not String.IsNullOrEmpty(a.Ass
.OrderBy(Function(a) a.LastName)
.ThenBy(Function(a) a.FirstName)
.ThenBy(Function(a) a.AssetNumber)
.ToList()
This question needs an answer!
Become an EE member today
7 DAY FREE TRIALMembers can start a 7-Day Free trial then enjoy unlimited access to the platform.
View membership options
or
Learn why we charge membership fees
We get it - no one likes a content blocker. Take one extra minute and find out why we block content.