Find’ был типа ‘int’, который не соответствует типу свойства ‘long’

#ef-core-2.0

#ef-core-2.0

Вопрос:

Сущность.

[Таблица(«Строки заказа», Схема = «Продажи»)]

     public class OrderLine
    {
        [Key]
        public long OrderLineID { get; set; }
    }
  

Попробуйте получить объект по идентификатору

 public virtual async Task<T> GetByIdAsync(object id)
{
    if (id == null) throw new ArgumentNullException("Identifier is null");
    return await _entities.FindAsync(id);
}
  

Выдает ошибку
Система.Исключение AggregateException: «Произошла одна или несколько ошибок. (Ключевое значение в позиции 0 вызова ‘DbSet.Find’ имело тип ‘int’, который не соответствует типу свойства ‘long’.)»

Комментарии:

1. В чем вопрос? По-видимому, вы передаете int идентификатор функции, которая ожидает long идентификатор.

2. вы должны явно присвоить идентификатору значение long, когда хотите использовать метод. Нравится GetByIdAsync((long)id)

3. Почему int не может быть неявно преобразован в long?