Невозможно выбрать конкретный столбец в SqlQuery — сначала код Entity Framework

У меня проблема, когда я использую метод SqlQuery, чтобы попытаться получить некоторые данные из базы данных, все идеально, если я доберусь до всех столбцов следующим образом:

data.Items.SqlQuery("SELECT * FROM dbo.Items WHERE iID = '1' ORDER BY iTitle")

Но я просто хочу получить, может быть, один или два столбца, но это не работает, и я получаю сообщение об ошибке:

data.Items.SqlQuery("SELECT iTitle FROM dbo.Items WHERE iID = '1' ORDER BY iTitle")

Ошибка:

Дополнительная информация: Средство чтения данных несовместимо с указанным '....Models.Item'. Член типа «iID» не имеет соответствующего столбца в средстве чтения данных с таким же именем.

Ниже приведен код модели и dbcontext.

[Table("Items")]
public class Item
{
    [Key]
    [Column("iID")]
    public int iID { get; set; }

    [Column(TypeName = "varchar")]
    [StringLength(50)]
    public int iTitle { get; set; }
}

public class ItemDBContext : DbContext
{
    public ItemDBContext() : base("name=connectionstring") { }
    public DbSet<Item> Items { get; set; }
}

Я надеюсь, что кто-то может сказать мне, что я могу сделать, чтобы решить эту проблему? Буду очень признателен за это ‹3


person thebugisreal    schedule 01.11.2019    source источник
comment
Вы используете Entity Framework — используйте его возможности запросов и прекратите использовать необработанный SQL:....   -  person marc_s    schedule 01.11.2019


Ответы (1)


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

var itemdata = data.Items.Where(x=> x.iID.Equals(1)).OrderBy(x=> x.iTitle).toList();

тогда вы можете использовать

данные элемента

список для всего, что вы хотите. Надеюсь, что это поможет вам!

person Sachin Akalanka    schedule 01.11.2019