0

Я пытаюсь создать приложение для Windows Phone 8, которое отображает данные в LongListSelector, которые заполнены из базы данных SQL CE, поставляемой с приложением. Я думаю, что у меня есть открытие и чтение из функций базы данных, но я не могу правильно использовать LINQ to SQL для группировки данных для LLS.Использование LongListSelector с развернутой базой данных

У меня есть класс базы данных со столом и соответствующими столбцами. Я использую вспомогательный класс «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 к 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 и ценю всю помощь!

+0

Я думаю, проблема в том, что мой класс KeyedList не принимает правильный тип данных. Какой тип данных является объектом базы данных SQL CE? Вероятно, это не IEnumerable. Кто-нибудь знает, как я могу изменить класс KeyedList, чтобы принять весь тип базы данных? – WiteCastle

ответ

0

Я нашел проблему. При создании нового списка Keyed обязательно используйте правильный тип ключа и тип элемента. Тип ключа будет типом данных, используемых группой, и тип элемента - ваш DataContext. Поэтому в моем случае db.Generation - это строка, а тип DataContext имеет тип Item.