C# 为什么我不能用Linq从数据库中获取列表

C# 为什么我不能用Linq从数据库中获取列表,c#,linq,sqlite,C#,Linq,Sqlite,我有个奇怪的问题。我可以使用LINQ获取数据库中的所有行,但无法获取其中一列的内容列表 在下面的代码中,Derfus最终是一个列表对象,我可以使用调试器查看列表内容。NewsItem是数据库元素的类名。在Derfus列表的每个元素中,m_ItemId成员变量被设置为一个非零值,我可以通过调试器看到该值。这就是我想要的,我可以使用一个循环来获得这些值。但第二行的LINQ语法似乎有点问题,因为IdList(如预期的那样是一个列表)包含所有零。IdList包含正确数量的元素,与Derfus相同,但不是

我有个奇怪的问题。我可以使用LINQ获取数据库中的所有行,但无法获取其中一列的内容列表

在下面的代码中,Derfus最终是一个列表对象,我可以使用调试器查看列表内容。NewsItem是数据库元素的类名。在Derfus列表的每个元素中,m_ItemId成员变量被设置为一个非零值,我可以通过调试器看到该值。这就是我想要的,我可以使用一个循环来获得这些值。但第二行的LINQ语法似乎有点问题,因为IdList(如预期的那样是一个列表)包含所有零。IdList包含正确数量的元素,与Derfus相同,但不是我期望的值

var Derfus = ( from e in Context.Table select e ).ToList();
var IdList = ( from e in Context.Table select e.m_ItemId ).ToList();
代码中的这些行是一行接一行的。该表确实包含m_ItemId作为一列,并且是一个很长的表

我不知道还有什么代码要显示。由于这两行代码都可以编译,而且很多其他函数都可以在这个数据库中正常工作,所以我不知道还有什么其他相关内容。以下是新闻项定义:

public class NewsItem 
{
    [SQLite.PrimaryKey, SQLite.AutoIncrement, SQLite.Indexed]
    public int m_Id { get; set; }
    public long m_ItemId { get; set; }
    public String m_Title { get; set; }
    public String m_Subtitle { get; set; }
    ...
}

请注意,我正在使用SQLite,但它不应该给我带来这样的问题,是吗?

这似乎是一个奇怪的错误。更糟糕的是,如果需要,您可以使用linq从Derfus中实际选择idlist…我编写了一个循环,从数据库项列表中提取ID值。至少写c代码可以让我在它不能正常工作时使用调试器。我对LINQ、XAML、绑定和其他阻止我调试坏代码的技术有一种爱恨关系。