0

我正在尝试为 Windows Phone 8 创建一个应用程序,该应用程序在 LongListSelector 中显示数据,该数据是从应用程序附带的 SQL CE 数据库填充的。我想我已经打开并从数据库功能中读取,但我无法正确使用 LINQ to SQL 对 LLS 的数据进行分组。

我有一个带有表和相应列的数据库类。我正在使用帮助器类“KeyedList”为msdn 示例代码中的数据添加公共名称:

public class KeyedList<TKey, TItem> : List<TItem>
{
    public TKey Key { protected set; get; }

    public KeyedList(TKey key, IEnumerable<TItem> items)
        : base(items)
    {
        Key = key;
    }

    public KeyedList(IGrouping<TKey, TItem> grouping)
        : base(grouping)
    {
        Key = grouping.Key;
    }
} 

然后我得到了我的数据库上下文:

dB = new DataContext(DataContext.DBConnectionString);

最后,这是我尝试使用的 LINQ to SQL:

var items =
            from item in dB.TableName
            orderby dB.ID
            group item by dB.Generation into generation
            select new <KeyedList<string,Item>(generation);

var allItems = new List<KeyedList<string, Item>>(items)

我几乎从示例中获取了此代码,但是在创建 allItems 以绑定到 LongListSelector 时,我无法使分组和排序工作。我不断收到无效参数错误。

我是 VB 编程的新手,感谢所有帮助!

4

1 回答 1

0

我发现了这个问题。创建新的键控列表时,请确保使用正确的键类型和项目类型。键类型将是 group by 使用的数据类型,项目类型是您的 DataContext。所以在我的例子中,db.Generation 是一个字符串,DataContext 类型是 Item 类型。

于 2014-01-07T17:43:37.763 回答