Обновите записи таблицы MySQL, используя CSV

Может ли кто-нибудь объяснить мне, когда я должен наследовать мою форму контроллера ODataController vs ApiController?

blockquote>

Вы хотели бы наследовать от ODataController, если хотите разоблачить конечную точку, которая придерживается к протоколу OData . Если вы хотите сделать что-то еще, например конечную точку REST, то наследуйте от ApiController.

Применение некоторых частей структуры OData WebAPI, но не других, вероятно, не очень хорошая идея. Это может быть в некоторых случаях, но, вероятно, не будет работать хорошо в других. Например, вы можете получить поддержку запросов, но конечная точка $ metadata не может быть сгенерирована (это просто спекуляция, фактические симптомы могут быть разными).

Похоже, вы уже используете EntityFramework. Я знаю, что есть несколько примеров, показывающих, как выставить это как конечную точку OData.

Если вы не хотите делать это по какой-либо причине, вы можете выполнить запрос самостоятельно. Это кратко описано в нескольких местах в этом учебнике , но суть заключается в том, чтобы добавить к вашему действию параметр типа ODataQueryOptions и использовать методы для его фильтрации вашего набора результатов. Тем не менее, может быть больно генерировать хорошие запросы к базе данных для всех возможных запросов OData, поэтому вам следует избегать, если это возможно.

2
задан Hunter 17 January 2019 в 02:57
поделиться

1 ответ

Вам не хватает типов данных для столбцов в таблице temp_update_table.

CREATE TABLE temp_update_table (
    entity_id INT,
    rate INT,
    INDEX (entity_id)
);

Также неплохо добавить индекс для столбца, используемого в соединении.

Поскольку в вашем CSV-файле есть строка заголовка, которую следует пропустить, вам необходимо использовать предложение IGNORE.

LOAD DATA INFILE 'sr.csv' 
INTO TABLE temp_update_table 
FIELDS TERMINATED BY ',' 
IGNORE 1 LINES
(entity_id, rate); 
0
ответ дан Barmar 17 January 2019 в 02:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: