我所遇到的问题与数据读取器与我指定的模型不兼容有关,我认为通过添加列名称,它会起作用,但不会。这是与手头问题有关的代码。
型号:
[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”上中断,而更改某些属性不会有问题 我想通过数据注释或某种不需要使用确切表名的方式来解决它,但是我已经指定了列名,但我不知道其他什么。 做