Мне удалось подключиться к моей базе данных, используя текущий синтаксис ниже и выполнить простой запрос LINQ. У меня есть база данных, содержащая около 20 уникальных идентификаторов SHIP_ID, которые каждые 2 минуты получают обновленную информацию о позициях для всех кораблей. Это означает, что SHIP_ID и TIMESTAMP, объединенные вместе, уникальны, и что моя база данных содержит много данных, поэтому я хочу, чтобы загрузка на сервере SQL возвращала правильные данные. И не клиент go через ответ в 20 тыс. Строк, чтобы найти желаемое значение.
Я хочу получить последнюю позицию, сохраненную в базе данных для группы выбранных кораблей, скажем, корабли с SHIP_ID 1, 2 и 3. На данный момент SHIP_ID хранятся в строке [].
using (var scope = _scopeFactory.CreateScope())
{
var dbContext = scope.ServiceProvider.GetRequiredService<AisRecordContext>();
var query = dbContext.SimpleAisRecords
//LINQ statements goes here to get intended result
.Where ?
.GroupBy ?
.Select?
.OrderderByDecending ?
}
Как я мог go пересылать правильные операторы LINQ для получения нужных мне данных? Я также хочу, чтобы у результата была вся строка, которую он выбирает как данные, например, LAT, LON, SPEED и HEADING, которые являются некоторыми из моих других столбцов.
Мне также интересно, какой формат лучше всего вернуть результат. Результатом будет возвращаемая строка, строка, в которой TIMESTAMP является самой новой для SHIP_ID, которые я хочу вызвать. Мне понадобятся все столбцы, которые есть в моей базе данных (около 15 столбцов), поскольку я буду отображать данные на карте.
Буду ли я использовать ToList? ToArray? или как-то просто сделать мой запрос результатом без изменения его после добавления.
Спасибо за ваше время (и извините за очень конкретный вопрос c, не удалось найти ни одной статьи, получающей несколько строк по выбранным идентификаторам для их последней ДАТЫ)