Как добавить несколько условий в LINQ Select, чтобы возвращать значения на основе перечисления?C#

Место общения программистов C#
Ответить
Anonymous
 Как добавить несколько условий в LINQ Select, чтобы возвращать значения на основе перечисления?

Сообщение Anonymous »

Я работаю над запросом LINQ, в котором мне нужно выбрать значения из источника данных на основе значения перечисления (ConversationRole). Я хочу вернуть разные идентификаторы пользователей в зависимости от того, является ли ConversationRole отправителем или получателем.
Я попробовал использовать тернарный оператор в инструкции LINQ Select, чтобы выбрать либо ReceiverUserId, либо SenderUserId на основе перечисления ConversationRole. ценить. Проблема в том, что возвращаемый идентификатор пользователя неверен. Предложение Where правильное, но тогда условие выбора либо ReceiverUserId, либо SenderUserId работает неправильно
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();


Подробнее здесь: https://stackoverflow.com/questions/792 ... ased-on-an
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»