DataContext db = new DataContext(scon);
Table<User> Tsome = db.GetTable<Users>();
IEnumerable<User> cbr= from c in Tsome select c; // or IQueryable<T>
Но вот есть свою коллекция наследующая KeyedCollection<TKey, TItem>, IEnumerable<TItem>, ICollection<TItem>.
И хотелось бы возвращать результаты запроса в нее. Но что-то не получается.
Так понимаю надо реализовать IQueryable?
Т.е. хочется такого
DataContext db = new DataContext(scon);
Table<User> Tsome = db.GetTable<Users>();
MyCollection<User> cbr= from c in Tsome select c;
There are 10 types of people in the world: Those who understand binary, and those who don't.
Здравствуйте, Smilless, Вы писали:
S>Можно писать так S>
S>DataContext db = new DataContext(scon);
S>Table<User> Tsome = db.GetTable<Users>();
S>IEnumerable<User> cbr= from c in Tsome select c; // or IQueryable<T>
S>
S>Но вот есть свою коллекция наследующая KeyedCollection<TKey, TItem>, IEnumerable<TItem>, ICollection<TItem>. S>И хотелось бы возвращать результаты запроса в нее. Но что-то не получается. S>Так понимаю надо реализовать IQueryable?
S>Т.е. хочется такого S>
S>DataContext db = new DataContext(scon);
S>Table<User> Tsome = db.GetTable<Users>();
S>MyCollection<User> cbr= from c in Tsome select c;
S>
Как вариант можно экстеншен метод сделать.
public static MyCollection<T> ToMyCollection(this IEnumerable<T> list)
{
var collection = new MyCollection<T>();
collection.AddRange(list); // или как тут у вас ...return colelction;
}
И юзать соответственно:
var cbr = db.GetTable<Users>().ToMyCollection();
Здравствуйте, Kore Sar, Вы писали:
KS>Как вариант можно экстеншен метод сделать. KS>
KS>public static MyCollection<T> ToMyCollection(this IEnumerable<T> list)
KS>{
KS> var collection = new MyCollection<T>();
KS> collection.AddRange(list); // или как тут у вас ...
KS> return colelction;
KS>}
KS>И юзать соответственно:
KS> var cbr = db.GetTable<Users>().ToMyCollection();
KS>
Дело в том, что передать в мою коллекцию то можно, но предистория такова,
что до этого все сериализовавылось в xml. Теперь пробую все хранить в бд.
Решил попробовать реализовать это с помощью LinqToSQL.
Только вот не приложу ума как сделать что-то типа
MyUsers db = new MyUsers(scon);
MyCollection<User> = from c in db.Users select c; // пока пишем так var cbr = from c in db.Users select c;
//
// -- какие-то действия --
// в MyCollection есть специфичные методы которые именно нужно использовать
//
db.SubmitChanges();
public class MyCollection<TItem> : KeyedCollection<string, TItem>, IEnumerable<TItem>, ICollection<TItem>
{
}
Может надо наследоваться от IQueryable и имплиментировать её?
Вот возникла мысль может за счет extension реализовать логику которая нужна только уже над результатом выборки в cbr
в случае если использовать var cbr = from c in db.Users select c;
Вобщем как говориться недостаток знаний рождает сомнения)
There are 10 types of people in the world: Those who understand binary, and those who don't.
Здравствуйте, Smilless, Вы писали:
_FR>>Для чего "такое" нужно?
S>Ну как бы реализована специфичная коллеция и хотелось бы её не потерять и в тоже время с базой "просто" общаться — http://www.rsdn.ru/forum/dotnet/3470244.1.aspx
Тем более непонятно, что своя коллекция "специфичная". Не понятно вот что — когда у вашей коллекции кто-то запрашивает Count, то должно быть обращение к БД? Другими словами — нужно скопировать в коллекцию некоторый срез выборки или просто нужно добавить к IQueryable<> некоторые свои специфические операции? Эти "операции" должны рнаботать опять же или с "живыми" данными или со срезом?
Help will always be given at Hogwarts to those who ask for it.
Здравствуйте, Smilless, Вы писали:
S>Вот возникла мысль может за счет extension реализовать логику которая нужна только уже над результатом выборки в cbr S>в случае если использовать var cbr = from c in db.Users select c;
Да. Можно "специфичные методы которые именно нужно использовать" вынести в экстеншен метод(ы).
Здравствуйте, _FRED_, Вы писали:
_FR>Здравствуйте, Smilless, Вы писали:
_FR>>>Для чего "такое" нужно?
S>>Ну как бы реализована специфичная коллеция и хотелось бы её не потерять и в тоже время с базой "просто" общаться — http://www.rsdn.ru/forum/dotnet/3470244.1.aspx
_FR>Тем более непонятно, что своя коллекция "специфичная". Не понятно вот что — когда у вашей коллекции кто-то запрашивает Count, то должно быть обращение к БД? Другими словами — нужно скопировать в коллекцию некоторый срез выборки или просто нужно добавить к IQueryable<> некоторые свои специфические операции? Эти "операции" должны рнаботать опять же или с "живыми" данными или со срезом?
Да в общем нет.
Просто хотелось бы, что бы после изменения данных после SubmitChanges() они "ушли" в базу.
Ну и добавление элементов тоже.
В кастом коллекции ничего такого привязанного к срезам данных нет.
Просто по особому добавляются элементы и свою сортировка.
There are 10 types of people in the world: Those who understand binary, and those who don't.