Похоже, что безключевые сущности явно не поддерживаются в Edata Model Builder в OData: https://github.com/OData/ModelBuilder/blob/86d26d7346e9359e64e5ec08c31ac7e829cbe788/src/Microsoft.OData.ModelBuilder/ODataModelBuilder.cs#L629
Таким образом, ответ на ваш первый вопрос пока нет.
Что касается второго вопроса, это может оказаться невозможным в вашем случае использования, но если ваша сущность без ключа соответствует представлению в вашей базе данных, вы можете просто построить нормальную (не ключевую) сущность, если есть столбец или комбинация столбцы на этом представлении это уникально. В одной из моих моделей я создал класс сущностей, соответствующий представлению базы данных, а затем добавил атрибут [Key] к свойству столбца в этом представлении, которое гарантированно будет уникальным для каждой записи. Тогда OData рассматривает это так же, как и любой другой объект. Единственное предостережение - это то, что он доступен только для чтения.
Если, с другой стороны, вы хотите отобразить объект без ключа в OData, потому что он извлекает столбцы из нескольких таблиц / представлений базы данных (как вы могли бы сделать с определяющий запрос в классе * (1013 * EF), и вы не хотите создавать новое представление в своей базе данных, я думаю, вам не повезло.