Может ли кто-нибудь объяснить мне, когда я должен наследовать мою форму контроллера ODataController vs ApiController?
blockquote>Вы хотели бы наследовать от
ODataController
, если хотите разоблачить конечную точку, которая придерживается к протоколу OData . Если вы хотите сделать что-то еще, например конечную точку REST, то наследуйте отApiController
.Применение некоторых частей структуры OData WebAPI, но не других, вероятно, не очень хорошая идея. Это может быть в некоторых случаях, но, вероятно, не будет работать хорошо в других. Например, вы можете получить поддержку запросов, но конечная точка $ metadata не может быть сгенерирована (это просто спекуляция, фактические симптомы могут быть разными).
Похоже, вы уже используете EntityFramework. Я знаю, что есть несколько примеров, показывающих, как выставить это как конечную точку OData.
Если вы не хотите делать это по какой-либо причине, вы можете выполнить запрос самостоятельно. Это кратко описано в нескольких местах в этом учебнике , но суть заключается в том, чтобы добавить к вашему действию параметр типа
ODataQueryOptions
и использовать методы для его фильтрации вашего набора результатов. Тем не менее, может быть больно генерировать хорошие запросы к базе данных для всех возможных запросов OData, поэтому вам следует избегать, если это возможно.
Вам не хватает типов данных для столбцов в таблице 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);