I’m working on a LINQ query where I need to select values from a data source based on the value of an enum (ConversationRole). I want to return different user IDs based on whether the ConversationRole is Sender or Receiver.
I tried using a ternary operator in my LINQ Select statement to select either ReceiverUserId or SenderUserId based on the ConversationRole enum value.
var datasource = _context.Conversations.AsQueryable();
var query = await datasource.Where(id => id.Id == conversationid)
.Select(role => role.ConversationRole == ConversationRole.Sender ? role.ReceiverUserId : role.ConversationRole == ConversationRole.Receiver ? role.SenderUserId : "")
.FirstOrDefaultAsync();