带有数据注释MVC的错误数据读取器EF 6

时间:2019-06-28 14:46:13

标签: c# sql asp.net model-view-controller data-annotations

我所遇到的问题与数据读取器与我指定的模型不兼容有关,我认为通过添加列名称,它会起作用,但不会。这是与手头问题有关的代码。

型号:

[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”上中断,而更改某些属性不会有问题 我想通过数据注释或某种不需要使用确切表名的方式来解决它,但是我已经指定了列名,但我不知道其他什么。 做

0 个答案:

没有答案