Почему мой запрос Linq к SQLite не возвращает все значения полей таблицы

Я создаю приложение WinRT с SQLite.

Я использую следующий метод в своем коде С#, чтобы получить все столбцы из таблицы ProductSubCategory, которые имеют одинаковый родительский идентификатор.

Я использую последнюю версию SQLite.Net и SQLITE.NET.ASync.

public async Task<IEnumerable<ProductSubCategory>> GetProductSubCategoryAsync(int ParentCategoryId)
{
    List<ProductSubCategory> lst = new List<ProductSubCategory>();
    var DBconn = await _sqliteService.OpenSQLiteConnection();
    {
        //retrive test data
        lst = await DBconn.Table<ProductSubCategory>().Where(c=>c.ParentSubCategoryId==ParentCategoryId).ToListAsync();
    }
    return lst;
}

Определение класса:

public class ProductCategory:ObservableObject
{
    [PrimaryKey]
    public int ProductCategoryId { get; set; }

    public string Name { get; set; }
    public string RowGuid { get; set; }
    public DateTime ModifiedDate { get; set; }
}

Когда код выполняется, он возвращает правильное количество записей на основе фильтра, но возвращаются не все значения возвращаемого поля.

Например, все поля моей таблицы типа INT, а также первичный ключ не обновляются в моем объекте.

Любая причина для этого и решение, чтобы заставить его работать? Мне нужно получить все эти данные столбца.

Зависит ли это от способа создания поля?


person serge    schedule 08.06.2015    source источник
comment
Пожалуйста, добавьте определение класса для ProductSubCategory.   -  person chue x    schedule 08.06.2015
comment
определение класса productSubCategory существует с тем же именем и типом поля. Я добавил определение в сообщении выше. Мне нужно получить возврат PrimaryKey в поле моего класса, но это не так. Любая причина для этого?   -  person serge    schedule 09.06.2015


Ответы (1)


Мне удается выяснить проблему. Поле столбца моей таблицы базы данных, которое не возвращало данные, называлось ProductCategoryID, а имя моего объекта было ProductCategoryId.

Это означает, что при получении поля из БД имя поля чувствительно к регистру, но странно то, что если вы вставляете данные, это не так.

Я просто переименовал имя поля таблицы в ProductCategoryID, и теперь я правильно получаю данные.

person serge    schedule 09.06.2015