LinqToSql в свою коллекцию
От: Smilless Россия Хороший укроп — мертвый укроп!
Дата: 16.07.09 07:24
Оценка:
Можно писать так
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.
Re: LinqToSql в свою коллекцию
От: Kore Sar  
Дата: 16.07.09 09:11
Оценка:
Здравствуйте, 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();
Re: LinqToSql в свою коллекцию
От: _FRED_ Черногория
Дата: 16.07.09 09:22
Оценка:
Здравствуйте, Smilless, Вы писали:

S>Т.е. хочется такого

S>DataContext db = new DataContext(scon);
S>Table<User> Tsome = db.GetTable<Users>();
S>MyCollection<User> cbr= from c in Tsome select c;


Для чего "такое" нужно?
Help will always be given at Hogwarts to those who ask for it.
Re[2]: LinqToSql в свою коллекцию
От: Smilless Россия Хороший укроп — мертвый укроп!
Дата: 16.07.09 09:32
Оценка:
Здравствуйте, 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.
Re[2]: LinqToSql в свою коллекцию
От: Smilless Россия Хороший укроп — мертвый укроп!
Дата: 16.07.09 09:34
Оценка:
Здравствуйте, _FRED_, Вы писали:


_FR>Для чего "такое" нужно?


Ну как бы реализована специфичная коллеция и хотелось бы её не потерять и в тоже время с базой "просто" общаться — http://www.rsdn.ru/forum/dotnet/3470244.1.aspx
Автор: Smilless
Дата: 16.07.09
There are 10 types of people in the world: Those who understand binary, and those who don't.
Re[3]: LinqToSql в свою коллекцию
От: _FRED_ Черногория
Дата: 16.07.09 10:28
Оценка:
Здравствуйте, Smilless, Вы писали:

_FR>>Для чего "такое" нужно?


S>Ну как бы реализована специфичная коллеция и хотелось бы её не потерять и в тоже время с базой "просто" общаться — http://www.rsdn.ru/forum/dotnet/3470244.1.aspx
Автор: Smilless
Дата: 16.07.09


Тем более непонятно, что своя коллекция "специфичная". Не понятно вот что — когда у вашей коллекции кто-то запрашивает Count, то должно быть обращение к БД? Другими словами — нужно скопировать в коллекцию некоторый срез выборки или просто нужно добавить к IQueryable<> некоторые свои специфические операции? Эти "операции" должны рнаботать опять же или с "живыми" данными или со срезом?
Help will always be given at Hogwarts to those who ask for it.
Re[3]: LinqToSql в свою коллекцию
От: Kore Sar  
Дата: 16.07.09 10:29
Оценка:
Здравствуйте, Smilless, Вы писали:

S>Вот возникла мысль может за счет extension реализовать логику которая нужна только уже над результатом выборки в cbr

S>в случае если использовать var cbr = from c in db.Users select c;

Да. Можно "специфичные методы которые именно нужно использовать" вынести в экстеншен метод(ы).
Re[4]: LinqToSql в свою коллекцию
От: Smilless Россия Хороший укроп — мертвый укроп!
Дата: 16.07.09 12:33
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Здравствуйте, Smilless, Вы писали:


_FR>>>Для чего "такое" нужно?


S>>Ну как бы реализована специфичная коллеция и хотелось бы её не потерять и в тоже время с базой "просто" общаться — http://www.rsdn.ru/forum/dotnet/3470244.1.aspx
Автор: Smilless
Дата: 16.07.09


_FR>Тем более непонятно, что своя коллекция "специфичная". Не понятно вот что — когда у вашей коллекции кто-то запрашивает Count, то должно быть обращение к БД? Другими словами — нужно скопировать в коллекцию некоторый срез выборки или просто нужно добавить к IQueryable<> некоторые свои специфические операции? Эти "операции" должны рнаботать опять же или с "живыми" данными или со срезом?


Да в общем нет.
Просто хотелось бы, что бы после изменения данных после SubmitChanges() они "ушли" в базу.
Ну и добавление элементов тоже.
В кастом коллекции ничего такого привязанного к срезам данных нет.
Просто по особому добавляются элементы и свою сортировка.
There are 10 types of people in the world: Those who understand binary, and those who don't.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.