我正在尝试为Windows Phone 8创建一个应用程序,该应用程序在LongListSelector中显示数据,该数据库是从应用程序附带的SQL CE数据库填充的。我想我已经打开并从数据库函数中读取,但我无法正确使用LINQ to SQL对LLS的数据进行分组。
我有一个包含表和相应列的数据库类。我正在使用辅助类“KeyedList”为msdn sample code中的数据添加公共名称:
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)
我几乎从示例中获取了这些代码,但在创建用于绑定到LongListSelector的allItem时,我无法使分组和排序工作。我一直得到无效的参数错误。
我是VB编程的新手,非常感谢所有帮助!
答案 0 :(得分:0)
我发现了这个问题。创建新的键控列表时,请确保使用正确的键类型和项类型。键类型将是group by使用的数据类型,而item类型是DataContext。所以在我的例子中,db.Generation是一个字符串,DataContext类型是Item类型。