为什么我对Linite的Linq查询不返回所有表字段值

时间:2015-06-08 17:01:11

标签: c# linq sqlite windows-runtime sqlite-net

我正在使用SQLite构建WinRT应用程序。

我在C#代码中运行以下方法,以便检索具有相同Parent ID的表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类型的表字段以及主键都没有在我的对象中更新。

有什么理由和解决方案让它发挥作用?我需要检索所有这些列数据。

是否取决于字段的创建方式?

1 个答案:

答案 0 :(得分:0)

我设法找出问题所在。 我的表数据库列字段未返回数据,名为 ProductCategoryID ,我的对象名称为 ProductCategoryId

这意味着何时从DB获取字段,字段名称区分大小写,但奇怪的是,如果您的插入数据不是。

我只是将我的表字段名称重命名为ProductCategoryID,现在我正确地获取数据