Некорректный считыватель данных EF 6 с аннотациями данных MVC - PullRequest
3 голосов
/ 28 июня 2019

проблема, с которой я сталкиваюсь, связана с тем, что устройство чтения данных несовместимо с указанной моделью, я подумал, что, добавив имя столбца, это будет работать, но это не так. Вот код, связанный с рассматриваемой проблемой.

Модель:

[Table("IPs")]
    public class Ip : BaseEntity
    {
        [Key]
        public int Id { get; set; }

        [Column("IdItem")]
        public int? ItemId { get; set; }

        [Column("EnUso")]
        public string En_Uso { get; set; }

        //more properties...
    }

Метод, который не работает, работает с обобщениями, ModelClass будет Ip здесь:

        var table = TableName<ModelClass>();
        var primaryKey = PrimaryKeyProperty<ModelClass>().Name; //this one uses reflection to see which one get the Key
        var query = String.Format(FindQuery(), table, primaryKey, id); 
        // The resulting query is this for example: Select * from IPs WHERE id = 1 
        var result = DBSet().SqlQuery(query); //here it fails
        return result.FirstOrDefault();

Ошибка, которую я получаю:

считыватель данных несовместим с указанным 'Inventario.Models.Ip. Элемент типа ItemId не имеет соответствующий столбец в считывателе данных с тем же именем.

Если я изменю имя столбца на IdItem, то оно будет разбито на «En_Uso», хотя изменение некоторых свойств не будет проблемой Я хотел бы исправить это, если это возможно, с помощью аннотаций данных или чего-то такого, что не требует использования точных имен таблиц, но я уже указал имя столбца, я не знаю, что еще. делать

...