|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
Как известно, LINQ не поддерживает конструкторы с параметрами. А что, если у меня вся логика в конструкторе основана именно на параметрах и мне нужно их обязательно передать? В LINQ я могу использовать для этого только инициализатор объекта, но логика-то у меня работает именно с параметрами конструктора и именно в конструкторе с параметрами. Как поступить? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 11:46 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
Заталкивать одну и ту же логику и в конструктор с параметрами, и в конструктор без параметров? - Фигня получается, да и юзер может попытаться использовать конструктор без параметров без инициализатора объекта, что приведёт к сбою работы логики в нём. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 11:47 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320Как известно, LINQ не поддерживает конструкторы с параметрами. Что это за бред? user7320А что, если у меня вся логика в конструкторе... За логику в конструкторе нужно скручивать руки и засовывать их догадайся куда. user7320В LINQ я могу использовать для этого только инициализатор объекта Ты что там куришь? Что за инициализатор объекта? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 11:51 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
авторюзер может попытаться использовать конструктор без параметров без инициализатора объектаМожно скрыть от юзера конструктор без параметров. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 11:54 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
Хотя может он и от линка скроется? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 11:57 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
авторЧто за инициализатор объекта? http://msdn.microsoft.com/en-us/library/vstudio/bb384062.aspx авторавторКак известно, LINQ не поддерживает конструкторы с параметрами.Что это за бред? http://stackoverflow.com/questions/3571084/only-parameterless-constructors-and-initializers-are-supported-in-linq-to-entiti авторЗа логику в конструкторе нужно скручивать руки и засовывать их догадайся куда. Там логика, которая строит экземляр - свойства там заполняет и всё такое. В частности, в конструкторе выполняется запрос к БД через LINQ to Entities. Для этого нужны параметры. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 12:30 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
AntonariyХотя может он и от линка скроется? Ну да. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 12:30 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320авторЧто за инициализатор объекта? http://msdn.microsoft.com/en-us/library/vstudio/bb384062.aspx Причем тут LINQ? user7320 http://stackoverflow.com/questions/3571084/only-parameterless-constructors-and-initializers-are-supported-in-linq-to-entiti И в чем проблема? user7320В частности, в конструкторе выполняется запрос к БД через LINQ to Entities. Для этого нужны параметры. Расстреливать на месте. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 12:49 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
МСУuser7320пропущено... http://msdn.microsoft.com/en-us/library/vstudio/bb384062.aspx Причем тут LINQ? user7320 http://stackoverflow.com/questions/3571084/only-parameterless-constructors-and-initializers-are-supported-in-linq-to-entiti И в чем проблема? user7320В частности, в конструкторе выполняется запрос к БД через LINQ to Entities. Для этого нужны параметры. Расстреливать на месте. А как надо? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 13:11 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320А как надо? Честно признаться, я даже твою проблему не понял :) Напиши кодом, что у тебя не получается. Может, это трудности изложения... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 13:15 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
МСУuser7320А как надо? Честно признаться, я даже твою проблему не понял :) Напиши кодом, что у тебя не получается. Может, это трудности изложения... У меня старая тема . Мне надо создать сложный объект, у которого есть поля-коллеции, у которых свои поля-коллекции и т. д. Все поля заполнить нужно из БД, причём выборки надо проводить по определённым параметрам. Вы там все упёрлись в репозиторий. И как тут поможет репозиторий или ещё какая штука, чтобы создать такой объект? Я не знаю, почему EF не поддерживает конструкторы с параметрами, но если бы поддерживал, то у меня бы не было проблем. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 13:30 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 13:35 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
МСУ Смотри, как я придумал - и не надо в конструкторы передавать контекст или создавать по новому контексту в каждом конструкторе: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Если что, я раньше спрашивал, чтобы в конструктор типа GroupModel передать контекст БД или в нём самом создавать этот контект. Потому что коллецию Biogroups у типа GroupModel заполнял в конструкторе GroupModel. А теперь всё делаю один запросов в инициализаторах. Не то, чтобы я раньше об этом не знал... но как-то подзабыл. И получается, что тот вопрос отпал. Ну, это же значительно лучше, чем у меня раньше было? Что вы об этом думаете? И да, я пока не буду репозиторий использовать всё равно. Ведь раньше же как-то жили без репозиториев и ничего - спутники летали, корабли плавали. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 13:52 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
Мне только интересно, во что такой запрос линка выльется в SQL. Наверное, там такая каша будет... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 13:54 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320И да, я пока не буду репозиторий использовать всё равно. Ведь раньше же как-то жили без репозиториев и ничего - спутники летали, корабли плавали.Репозиторий - это тупо класс, что инкапсулирует в себе логику работы с хранимыми данными. Кто-то когда-то выделил этот класс, так как ему это было надо в практических целях, и использовал такой подход в последующих проектах. Получился шаблон. До появления шаблона каждый делал по своему, и сейчас не запрещается поступать также. Не хочешь, не используй. Проектируй свои собственные классы. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 14:32 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
А как насчёт предложенного мной запроса выше ? Какие могут быть минусы при использовании таких... эмм... каскадов инициализаторов объектов в LINQ-выражениях? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 15:39 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320, используется ToList(), то есть будет fetch из WeedGroups, и во время него будет выполняться запрос к Biogroups. Может вылететь исключение, что нельзя открыть DataReader, т.к. уже есть один открытый. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 16:09 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
А про обращение к БД в конктрукторе доменного объекта я промолчу. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 16:15 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
skyANAА про обращение к БД в конктрукторе доменного объекта я промолчу. Ну, вы как бы не замечайте этого. Я же сказал, что пока без репозитория. skyANAuser7320, используется ToList(), то есть будет fetch из WeedGroups, и во время него будет выполняться запрос к Biogroups. Может вылететь исключение, что нельзя открыть DataReader, т.к. уже есть один открытый. А что значит "может вылететь"? Я вот запустил пару раз - и всё открылось и выполнилось. При каких условиях может, а при каких не может? Памяти ему не хватит, или количество DataReader'ов ограничего? Я щас запустил этот код - странно, но почему-то он выдал "Only parameterless constructors and initializers are supported in LINQ to Entities". Это чего, и ReadOnlyCollection тоже нельзя применять, если она с параметров в конструкторе? UPD. Вы меня уговорили. Вместо IReadOnlyCollection стал использовать IEnumerable. Но не потому, что так типа нужно, а потому, что в линке нельзя использовать параметризованные конструкторы (словил исключение - у ReadOnlyCollection конструктор всего один и обязательно с параметром). И да, убрал ToList в середине запроса. Но не потому, что там типа ДатаРидеров не хватит, а потому, что линк не понимает таких выражений (тоже словил исключение). В результате получилось вот что. Ну, как теперь? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 17:08 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320Это делается в репозитории. ЧЕСНА!!!Ага, так я и проверил. Использование this.Groups в этом не убеждает. А в остальном... должно работать... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 17:32 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320UPD. Вы меня уговорили. Вместо IReadOnlyCollection стал использовать IEnumerable. Но не потому, что так типа нужно, а потому, что в линке нельзя использовать параметризованные конструкторы (словил исключение - у ReadOnlyCollection конструктор всего один и обязательно с параметром). И да, убрал ToList в середине запроса. Но не потому, что там типа ДатаРидеров не хватит, а потому, что линк не понимает таких выражений (тоже словил исключение).Проектирование доменной можеди завязано на "в линке нельзя использовать параметризованные конструкторы", смешно. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 17:37 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
skyANAuser7320Это делается в репозитории. ЧЕСНА!!!Ага, так я и проверил. Использование this.Groups в этом не убеждает. А в остальном... должно работать... Я проверил - работает. А у меня такой вопрос. Кто-нибудь смешивал в одном проекте ORM'ы EF от нескольких БД, при этом сами ORM'ы сгенерены EF разных версий? В частности, у меня в старом проекте надо было добавить функциональности, для этого требовалось подключение к дополнительной БД. Со старой БД соединялся с помощью ORM от EF версии то ли 1.х, то ли 4.0 - вобщем, когда он ещё не умел POCO делать. А с новой БД - с помощью POCO ORM. Ну, и в старом ORM вылетало исключение "Could not find the conceptual model type..." (ситуация типа такой ). В обоих случаях подходы Database First. Вынесение ОРМа новой БД в новый проект того же солюшена не помогло. Переделка старого ОРМа под POCO повлекла ошибки залогинивания, причём как при обращении к старой БД, так и к новой, что на одном сервере, что на другом (на моей машине копия по структуре продакшеновой БД стоит). Насколько я нарыл в Инете, это скорее связано с какими-то настройками то ли СУБД, то ли ОС с её правами доступа. Только штука в том, что если создать новый, пустой проект, и поместить туда два этих ОРМа (к новой и к старой БД), то всё работает и проблем с залогиниванием нет. Я решил пока это так: вынес ОРМ к новой БД в отдельный солюшен, и подключился из старого солюшена к сборке солюшена с новым ОРМ. Вобщем, я не прошу во всю эту писанину вникать, просто хочу узнать - кто-нибудь комбинировал ОРМы старых и новых версий EF (особенно с POCO и без) в одном проекте и были ли при этом какие-нибудь проблемы? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 19:17 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320, все равно, репозитарий не буду делать (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 20:40 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
Где-то в степиuser7320, все равно, репозитарий не буду делать (с) Вы ещё скажите, что каждое ОРМ у вас в своём репозитории, а не все в одном. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2013, 06:05 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320Где-то в степиuser7320, все равно, репозитарий не буду делать (с) Вы ещё скажите, что каждое ОРМ у вас в своём репозитории, а не все в одном. А каждый репозиторий - отдельный солюшен. Проблема-то всё равно должна остаться та же, что я описал. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2013, 06:06 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320Где-то в степиuser7320, все равно, репозитарий не буду делать (с) Вы ещё скажите, что каждое ОРМ у вас в своём репозитории, а не все в одном.Когда реализован репозиторий, то изначально мы получает от него объекты доменной модели, и не нужно танцевать с бубном вокругuser7320Переделка старого ОРМа под POCO повлекла ошибки залогинивания, причём как при обращении к старой БД, так и к новой, что на одном сервере, что на другом (на моей машине копия по структуре продакшеновой БД стоит). Насколько я нарыл в Инете, это скорее связано с какими-то настройками то ли СУБД, то ли ОС с её правами доступа.и смешивать в одном проекте! EF разных версий. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2013, 12:16 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320user7320пропущено... Вы ещё скажите, что каждое ОРМ у вас в своём репозитории, а не все в одном. А каждый репозиторий - отдельный солюшен. Проблема-то всё равно должна остаться та же, что я описал.Проблемы кривой архитектуры решаются рефакторингом. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2013, 12:21 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
skyANAuser7320пропущено... Вы ещё скажите, что каждое ОРМ у вас в своём репозитории, а не все в одном.Когда реализован репозиторий, то изначально мы получает от него объекты доменной модели, и не нужно танцевать с бубном вокругuser7320Переделка старого ОРМа под POCO повлекла ошибки залогинивания, причём как при обращении к старой БД, так и к новой, что на одном сервере, что на другом (на моей машине копия по структуре продакшеновой БД стоит). Насколько я нарыл в Инете, это скорее связано с какими-то настройками то ли СУБД, то ли ОС с её правами доступа.и смешивать в одном проекте! EF разных версий. Даже если вы будете делать репозиторий, вы же не откажетесь от EF? Так репозиторий у вас каждый в своей сборке по числу БД, или всё в одном проекте, да ещё и в том, что и основная программа? У меня проблема, что конфликтуют ORM от разных версий EF в одной и той же сборке. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2013, 05:09 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320skyANAпропущено... Когда реализован репозиторий, то изначально мы получает от него объекты доменной модели, и не нужно танцевать с бубном вокругпропущено... и смешивать в одном проекте! EF разных версий. Даже если вы будете делать репозиторий, вы же не откажетесь от EF? Так репозиторий у вас каждый в своей сборке по числу БД, или всё в одном проекте, да ещё и в том, что и основная программа?Да репозиторий каждый в своей сборке по числу поставщиков данных (это не обязательно БД).user7320У меня проблема, что конфликтуют ORM от разных версий EF в одной и той же сборке.Используй везде отдну версию EF, проведи рефакторинг. Так можно 100500 сторонних библиотек заюзать: в этом проекте используем такую версию, в этом другую, - что за зоопарк, блеать? Или тебе предложить костыль? Загружай их в разные домены приложения. Но боюсь ты и вразных доменах на какую-нибудь херню напорешься. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2013, 11:28 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
skyANAuser7320пропущено... Даже если вы будете делать репозиторий, вы же не откажетесь от EF? Так репозиторий у вас каждый в своей сборке по числу БД, или всё в одном проекте, да ещё и в том, что и основная программа?Да репозиторий каждый в своей сборке по числу поставщиков данных (это не обязательно БД).user7320У меня проблема, что конфликтуют ORM от разных версий EF в одной и той же сборке.Используй везде отдну версию EF, проведи рефакторинг. Так можно 100500 сторонних библиотек заюзать: в этом проекте используем такую версию, в этом другую, - что за зоопарк, блеать? Или тебе предложить костыль? Загружай их в разные домены приложения. Но боюсь ты и вразных доменах на какую-нибудь херню напорешься. А какой принцип, по которому вы разделяете на разные сборки куски приложения? У вас над каждым куском свой человек работает, поэтому вы потом все DLL линкуете, или как? Вот, положим, есть шаблон MVVM в WPF. Вот эти вот M, VM и V тоже надо разделять? Скажем, модель в одну сборку, а модель представления и представление (т. к. они завязаны на одну технологию) - вдругую? Потом, скажем, слой общения с веб-службами, слой авторизации и аутентификации - тоже каждый в свою DLL? Плюс сборки - по одной на каждый репозиторий (т. е. на каждый поставщик данных)? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2013, 07:27 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320, я же написал, что репозиторий каждый в своей сборке по числу поставщиков данных (это не обязательно БД). Что тут не понятно? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2013, 09:44 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
skyANAuser7320, я же написал, что репозиторий каждый в своей сборке по числу поставщиков данных (это не обязательно БД). Что тут не понятно? Непонятно, как делить программу на сборки окромя репозиториев. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2013, 09:58 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320skyANAuser7320, я же написал, что репозиторий каждый в своей сборке по числу поставщиков данных (это не обязательно БД). Что тут не понятно? Непонятно, как делить программу на сборки окромя репозиториев.Дак может её и не надо делить на сборки? Приложения WPF с шаблоном проектирования модель-представление-модель представления В начале статьи есть ссылка на исходники проекта. Посмотри как они организованы: разложены по папкам. Начни с этого: разложи классы по файлам и папкам, а когда вдруг поймёшь, что отдельную папку стоит вынести в отдельный проект, то и вынесешь. P.S.: в процессе изучения MVVM ты не наткнулся ни на один пример проекта? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2013, 12:05 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
skyANAuser7320пропущено... Непонятно, как делить программу на сборки окромя репозиториев.Дак может её и не надо делить на сборки? Приложения WPF с шаблоном проектирования модель-представление-модель представления В начале статьи есть ссылка на исходники проекта. Посмотри как они организованы: разложены по папкам. Начни с этого: разложи классы по файлам и папкам, а когда вдруг поймёшь, что отдельную папку стоит вынести в отдельный проект, то и вынесешь. P.S.: в процессе изучения MVVM ты не наткнулся ни на один пример проекта? Меня уже тошнит от той статьи. Я давно всё там перелопатил, включая пример проекта. Давно всё пихаю по папках (пространствам имён) и прочее. Я пробовал делать свой проект, где каждая часть (репозиторий, модели, модели представления с представлениями) разложены по своим солюшенам. Запускал три версии Студии и работал. Получилось хреново. Лучше, если уж на проекты делить, то всё в одном солюшене, ибо задолбало копмилить каждый раз три солюшена из-за того, что в солюшене моделей что-то поменялось (остальные-то части на модели ссылаются). Тут с EF получилось, что его ORM и его репозиторий лучше хранить в отдельном проекте потому, что старые версии EF были толи багованые, толи фичёванные , а не потому, что так "по архитектуре надо". ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2013, 15:20 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320 толи багованые, толи фичёванные Кстати, у меня в обоих случаях "DB first", но ошибка такая же. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2013, 15:22 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320skyANAпропущено... Дак может её и не надо делить на сборки? Приложения WPF с шаблоном проектирования модель-представление-модель представления В начале статьи есть ссылка на исходники проекта. Посмотри как они организованы: разложены по папкам. Начни с этого: разложи классы по файлам и папкам, а когда вдруг поймёшь, что отдельную папку стоит вынести в отдельный проект, то и вынесешь. P.S.: в процессе изучения MVVM ты не наткнулся ни на один пример проекта? Меня уже тошнит от той статьи. Я давно всё там перелопатил, включая пример проекта. Давно всё пихаю по папках (пространствам имён) и прочее. Я пробовал делать свой проект, где каждая часть (репозиторий, модели, модели представления с представлениями) разложены по своим солюшенам. Запускал три версии Студии и работал. Получилось хреново. Лучше, если уж на проекты делить, то всё в одном солюшене, ибо задолбало копмилить каждый раз три солюшена из-за того, что в солюшене моделей что-то поменялось (остальные-то части на модели ссылаются). Тут с EF получилось, что его ORM и его репозиторий лучше хранить в отдельном проекте потому, что старые версии EF были толи багованые, толи фичёванные , а не потому, что так "по архитектуре надо".Короче, Склифосовский! Что тебя конкретно не устраивает? Солюшины - фигушины. Компилить его задолбало. Можно создать солюшн, что будет содержать в себе другие солюшины. Есть GAC, есть NuGet, есть такое понятие, как Artifact Repository. Ты чего хочешь добиться-то? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2013, 15:38 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
Может, папиффку? Ты у себя и своё, а я у себя и своё? )) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2013, 15:47 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320skyANAА про обращение к БД в конктрукторе доменного объекта я промолчу. Ну, вы как бы не замечайте этого. Я же сказал, что пока без репозитория. skyANAuser7320, используется ToList(), то есть будет fetch из WeedGroups, и во время него будет выполняться запрос к Biogroups. Может вылететь исключение, что нельзя открыть DataReader, т.к. уже есть один открытый. А что значит "может вылететь"? Я вот запустил пару раз - и всё открылось и выполнилось. При каких условиях может, а при каких не может? Памяти ему не хватит, или количество DataReader'ов ограничего? Я щас запустил этот код - странно, но почему-то он выдал "Only parameterless constructors and initializers are supported in LINQ to Entities". Это чего, и ReadOnlyCollection тоже нельзя применять, если она с параметров в конструкторе? UPD. Вы меня уговорили. Вместо IReadOnlyCollection стал использовать IEnumerable. Но не потому, что так типа нужно, а потому, что в линке нельзя использовать параметризованные конструкторы (словил исключение - у ReadOnlyCollection конструктор всего один и обязательно с параметром). И да, убрал ToList в середине запроса. Но не потому, что там типа ДатаРидеров не хватит, а потому, что линк не понимает таких выражений (тоже словил исключение). В результате получилось вот что. Ну, как теперь? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Есть ли смысл так делать, елси у меня свойство this.Groups типа IEnumerable? Тут ещё штука в том, что по этому свойству модели (ASP.NET MVC) надо в представлении не только пройтись форичем, но и знать число элементов этой коллеции, чтобы растянуть на это число ячейки в табличке. Использовать IEnumerable.Count() - лишний раз проходить по коллеции (я так понимаю, что этот метод именно проходит по ней, чтобы посчитать число всех элементов). Какой в таком случае лучше свойству this.Groups поставить тип? IList будет достаточно? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2013, 17:01 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320, авторя так понимаю, что этот метод именно проходит по ней, чтобы посчитать число всех элементов Вы нехправильно понимаете, ну вы что - полный кретин, что документацию почитать не можете.. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2013, 19:29 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
Где-то в степиuser7320, авторя так понимаю, что этот метод именно проходит по ней, чтобы посчитать число всех элементов Вы нехправильно понимаете, ну вы что - полный кретин, что документацию почитать не можете.. А как он узнаёт число элементов? Где об этом написано? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2013, 20:27 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320, поиграйся Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
как бы еще наводящий., в каких случаях выгодно орм выкидывать наружу чистый IEnumerable ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2013, 22:34 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320Где-то в степиuser7320, пропущено... Вы нехправильно понимаете, ну вы что - полный кретин, что документацию почитать не можете.. А как он узнаёт число элементов? Где об этом написано?Мда, и не стыдно такие вопросы задавать? Enumerable.Count<TSource> Method (IEnumerable<TSource>) RemarksIf the type of source implements ICollection<T> , that implementation is used to obtain the count of elements. Otherwise, this method determines the count. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2013, 22:44 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
skyANAМда, и не стыдно такие вопросы задавать? Enumerable.Count<TSource> Method (IEnumerable<TSource>)Remarks If the type of source implements ICollection<T>, that implementation is used to obtain the count of elements. Otherwise, this method determines the count. Я несколько раз ещё раньше прочёл эти строчки там и так и не понял, КАК ИМЕННО Count() получает число элементов. Беглый осмотр трёх результатов на StackOverflow привёл к ответам типа "только через итерацию, прямого свойства нет". Только углубившись, обнаружил пример, подобный вашему . Я так понимаю, это из исходников ("Рефлектором" посмотрели или что-то такое?)? К сожалению, я больше реагировал на зелёные галочки там, забыв, что неграмотных или незнающих хватает и на StackOverflow, несмотря на их тыщи и десятки тыщь репутации. Тогда касательно моего пример, если я в конце запроса вызываю ToList(), то возвращается список, который поддерживает ICollection и метод Count() может считать уже готовое свойство Count. Если же оставить результат как IQueryble, то Count() будет именно перебирать элементы. Правильно? Стоит, однако, заметить, что это довольно неоднозначное поведение. Мне бы больше понравилось, если бы методы всегда перебирали элементы, а свойства - возвращали готовое значение. А так нужно всегда запоминать специальное поведение в специальных случаях, написанное где-то в глубине статьи мелким шрифтом. Спасибо за наводки. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 06:23 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
Где-то в степикак бы еще наводящий., в каких случаях выгодно орм выкидывать наружу чистый IEnumerable При жадной загрузке? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 06:33 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320Где-то в степикак бы еще наводящий., в каких случаях выгодно орм выкидывать наружу чистый IEnumerable http://stackoverflow.com/a/2876655/808128 Что-то я запутался... Ну вот. У метода Select есть два исполнения - для Queryable и для Enumerable вариантов. Судя по ссылке, они довольно сильно различаются по фактическому исполнению кода, а вот тут , например, предалагают в четвёртом примере в Remarks использовать лямбда-выражения вместо делегата Func. Подумаешь - делегат или лямбду! А то, что это будет либо в СУБД выполняться, либо у клиента на машине - внимания они не обращают? Т. е. передал в параметр delegate(...){...} - получил исполнение в БД. Написал лямбду (что я всегда делаю, т. к. удобнее) - получил OutOfMemoryException? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 08:52 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320Т. е. передал в параметр delegate(...){...} - получил исполнение в БД. Написал лямбду (что я всегда делаю, т. к. удобнее) - получил OutOfMemoryException? Т. е., наоборот - с лямбдой - на сервере, а с делегатом - на клиенте. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 10:06 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
У меня сразу несколько вопросов возникло. 1. авторIf the type of source implements ICollection<T>, that implementation is used to obtain the count of elements. Otherwise, this method determines the count. А можете ещё пояснить эту фразу? Конкретно, какой вложенности "type of source" имеется ввиду? Например, я получаю результат запроса в виде IQuerayble, перевожу его в List через ToList(), потом отдаю это в свойство, которое показывает IEnumerable. Пользователь свойства считывает его и применяет метод Count(). В этом случае что имеется ввиду под "type of source": IEnumerable, List, IQuerayble или что-то ещё? 2. Я так понимаю, что даже если в свойство попадает полнофункциональный List, то показывая его как IEnumerable, я обрезаю ему функциональность до банального перебора коллекции и только? 3. Теперь учтём сразу 1 и 2. Пользователь моего свойства не знает, что служит источником для этого свойства. И если я показываю ему IEnumerable, то использовать расширение Enumerable.Count() он не имеет права, т. к. может загрузить как не знает, поддерживает ли источник этого свойства ICollection или нет. Так? Вот теперь тут всплывает наш старый спор - почему бы не заменить экспозицию свойства как IReadOnlyCollection на как IEnumerable, как предлагал skyANA. А потому что накладных расходов всё равно нет, если я в конце запроса вызываю ToList(), зато через IReadOnlyCollection я могу пользователю моего свойства явно сказать, что свойство можно не только перебирать, но и получить у него готовое число элементов Count, не боясь лишних переборов коллеции. Т. е. если я сам пишу свойства и сам их использую - то да, можно IEnumerable и потом для него вызывать расширитель Count(). Но в общем случае надо всегда показывать через тип возврата, что можно делать, а что нельзя. Правильно? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 10:39 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
Вот, например http://stackoverflow.com/questions/343466/does-dot-net-have-an-interface-like-ienumerable-with-a-count-property ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 10:40 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320skyANAМда, и не стыдно такие вопросы задавать? Enumerable.Count<TSource> Method (IEnumerable<TSource>)Remarks If the type of source implements ICollection<T>, that implementation is used to obtain the count of elements. Otherwise, this method determines the count. Я несколько раз ещё раньше прочёл эти строчки там и так и не понял, КАК ИМЕННО Count() получает число элементов. Ах, вот оно что, тебе смысл данного замечания не понятен. Плохо. В следующий раз так и пиши: прочитал документацию и всё равно не понимаю как работает IEnumerable.Count, что означают эти строки? Вместо рассуждений типа:user7320Использовать IEnumerable.Count() - лишний раз проходить по коллеции... бла бла блаТы своими рассуждениями выставляешь себя в не лучшем виде. user7320Я так понимаю, это из исходников ("Рефлектором" посмотрели или что-то такое)?Да, это исходники System.Core.dll. Смотрел при помощи JustDecompile. user7320Стоит, однако, заметить, что это довольно неоднозначное поведение. Мне бы больше понравилось, если бы методы всегда перебирали элементы, а свойства - возвращали готовое значение. А так нужно всегда запоминать специальное поведение в специальных случаях, написанное где-то в глубине статьи мелким шрифтом.Жалкая попытка оправдать свою глупость. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 10:45 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
skyANAuser7320Стоит, однако, заметить, что это довольно неоднозначное поведение. Мне бы больше понравилось, если бы методы всегда перебирали элементы, а свойства - возвращали готовое значение. А так нужно всегда запоминать специальное поведение в специальных случаях, написанное где-то в глубине статьи мелким шрифтом.Жалкая попытка оправдать свою глупость. Я не пытаюсь оправдать свою глупость. То, что я глуп, видно и так - с этим глупо спорить. Я уже разобрался, как это работает. Меня теперь больше интересует мой последний длинный пост - я всё же там прав или нет, по-вашему? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 10:48 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
Касательно этого моего поста. Нет, всё же, требование конструкторов без параметров в линке не даёт мне воспользоваться ReadOnlyCollection. Тогда остаётся узнать, что имеется ввиду под "the type of source ". И ещё, есть способ узнать, при вызове Count() начинается итерация по коллеции или всего лишь считывается готовое свойство? Скажем, под дебагом залезть во внутрь Enumerable>Count() можно, и посмотреть, выполнилось ли там условие (если следовать примеру skyANA) Код: c# 1. 2. 3. 4.
? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 11:01 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320У меня сразу несколько вопросов возникло. 1. авторIf the type of source implements ICollection<T>, that implementation is used to obtain the count of elements. Otherwise, this method determines the count. А можете ещё пояснить эту фразу? Конкретно, какой вложенности "type of source" имеется ввиду? Например, я получаю результат запроса в виде IQuerayble, перевожу его в List через ToList(), потом отдаю это в свойство, которое показывает IEnumerable. Пользователь свойства считывает его и применяет метод Count(). В этом случае что имеется ввиду под "type of source": IEnumerable, List, IQuerayble или что-то ещё?List user73202. Я так понимаю, что даже если в свойство попадает полнофункциональный List, то показывая его как IEnumerable, я обрезаю ему функциональность до банального перебора коллекции и только?Да. Это называется инкапсуляция. user73203. Теперь учтём сразу 1 и 2. Пользователь моего свойства не знает, что служит источником для этого свойства. И если я показываю ему IEnumerable, то использовать расширение Enumerable.Count() он не имеет права, т. к. может загрузить как не знает, поддерживает ли источник этого свойства ICollection или нет. Так? Вот теперь тут всплывает наш старый спор - почему бы не заменить экспозицию свойства как IReadOnlyCollection на как IEnumerable, как предлагал skyANA. А потому что накладных расходов всё равно нет, если я в конце запроса вызываю ToList(), зато через IReadOnlyCollection я могу пользователю моего свойства явно сказать, что свойство можно не только перебирать, но и получить у него готовое число элементов Count, не боясь лишних переборов коллеции. Т. е. если я сам пишу свойства и сам их использую - то да, можно IEnumerable и потом для него вызывать расширитель Count(). Но в общем случае надо всегда показывать через тип возврата, что можно делать, а что нельзя. Правильно?Правильно - это изучать принципы ООП, а не выдумывать их. Восемь принципов программирования, которые могут облегчить вам жизнь ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 11:58 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320Касательно этого моего поста. Нет, всё же, требование конструкторов без параметров в линке не даёт мне воспользоваться ReadOnlyCollection. Тогда остаётся узнать, что имеется ввиду под "the type of source ".Блеать! Ты каким местом документацию читаешь? Enumerable.Count<TSource> Method (IEnumerable<TSource>) Код: c# 1. 2. 3.
Parameters source - a sequence that contains elements to be counted. Под "the type of source " имеется ввиду конкретный тип параметра source ! user7320И ещё, есть способ ... под дебагом залезть во внутрь Enumerable>Count()? How to: Debug .NET Framework Source ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 12:16 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
авторБлеать! Ты каким местом документацию читаешь? Код: c# 1. 2. 3. 4.
Ну вот мы и видим, что IEnumerable<TSource> source не поддерживает Count(), а значит, расширитель будет использовать проход по коллекции. Но если вы скажете, что тут задействована ковариация, и компилятор может определить, что под IEnumerable<TSource> source сидит какой-нибудь ICollection, и тогда он воспользуется его свойством Count без прохода по коллеции... Или вы так не скажите? авторПод "the type of source" имеется ввиду конкретный тип параметра source! Т. е. таки ковариация? - Любой тип, унаследованный от IEnumerable? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 16:19 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
skyANAuser7320И ещё, есть способ ... под дебагом залезть во внутрь Enumerable>Count()? How to: Debug .NET Framework Source Проверил - код сразу возвращает Count, а не вычисляет его. Значит, с ковариацией моя догадка была верна. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 16:40 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320skyANAпропущено... How to: Debug .NET Framework Source Проверил - код сразу возвращает Count, а не вычисляет его.Это ясно сразу после прочтения документации. Но тебе понадобилось потратить туеву хучу времени, чтобы убедиться. Молодец! user7320Значит, с ковариацией моя догадка была верна.Ты толком не понял, что такое ковариация. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 17:56 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
skyANAuser7320Значит, с ковариацией моя догадка была верна.Ты толком не понял, что такое ковариация. Почему? - Это когда можно передавать объект типа, более унаследованного, чем объявленный. У МС, правда, вводятся ещё всякие ограничения, когда это применяется для параметров или возвращаемых значений. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 19:58 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320skyANAпропущено... Ты толком не понял, что такое ковариация. Почему? - Это когда можно передавать объект типа, более унаследованного, чем объявленный.Нет, это не правильное определение. Ты его сам придумал? А что такое полиморфизм в твоём понимании? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 20:03 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
skyANAuser7320пропущено... Почему? - Это когда можно передавать объект типа, более унаследованного, чем объявленный.Нет, это не правильное определение. Ты его сам придумал? А что такое полиморфизм в твоём понимании? Ладно, преположим, что я не знаю, что такое ковариация и прочие такие штуки. Но вопрос-то (первый абцаз в моём комментарии) остаётся! Т. е. расширитель будет использовать проход по коллеции. А он на деле не использует! Как же так? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 20:24 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320, ты завязывай траву-то курить. Тебе уже и ссылку на документацию дали, и код метода расширения, и ты убедился в том, что он работает так, как написан. А всё равно не врубаешься. Высохли походу мозги-то ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 00:36 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
skyANAuser7320, ты завязывай траву-то курить. Тебе уже и ссылку на документацию дали, и код метода расширения, и ты убедился в том, что он работает так, как написан. А всё равно не врубаешься. Высохли походу мозги-то Ладно, будем отталкиваться от этого поста . Вы, конечно, прямо не говорите, но я так понимаю, что согласны, что компилятор знает, какой конкретный тип сидит под IEnumerable во время выполнения, реализует ли этот тип ICollection и в результате применяет или не применяет уже заполненное свойство Count при вызове расширяющего метода Count(). Но пользователь-то, который считывает моё свойство IEnumerable, не знает всего этого! Как же тут тогда быть? Это же, как её, инкабсумляция, мать её! Как: 1) дать ему возможность перебрать свойство this.Groups; 2) дать ему возможность считать (не вычислить перебором!) число элементов коллекции этого свойства; 3) не дать ему возможности добавлять и изменять элементы в коллеции явно (т. е. обойтись без всяких ICollection; если будет копировать коллецию в другую, где сможет менять всё, что захочет - его проблемы); 4) не показывать ему код модели (т. е. он не знает, что там сидит под IEnumerable или какое я свойство ему выставлю) - т. е. он не может рассчитывать на вызов метода (Count(), например), не зная, сколько это ему будет стоит; 5) чтобы свойство имело не конкретный тип, а абстрактный, потому что так говорят великие десять заповедей восемь принципов ООП; 6) чтобы у этого типа были конструкторы без параметров, чтобы можно было использовать инициализацию в LINQ? Вроде, ничего не забыл. У меня такое ощущение, что я пытаюсь донести все эти пункты, а мне говорят "ну вот же тебе IEnumerable - он удовлетворяет четырём твоим трбованиям", или "любые три из шести", или "5 из 36" - спортлото какое-то получается. На вскидку: IEnumerable не подходит по п.4; ICollection - п. 3; IReadOnlyCollection - п. 6, т. к. реализует этот тырфейс из подходящих мне коллеций только ReadOnlyCollection, у которой конструктор с параметром - т. е. в линке не работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 06:14 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320, ну у тебя походу два выхода: переписать код нормально, либо реализовать свой класс коллекции, блеать! ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 08:28 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
Или добавить свойство: Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 09:20 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
Короче, если есть каунт, то ленивые загрузки уже не катят, а раз так, то гулять так гулять. Тем более, что там не более 20 записей в одной таблице и на каждую из них по 0-5 записей через связь. Чёжь вы сразу не сказали, что надо делать так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35.
Вся суть в ToList после "from wg in db.WeedGroups select wg". Вот теперь эта штука удовлетворяет всем 6 требованиям. В смысле, что шестое ликвидировалось путём загрузки в память нужной коллекции. А все эти ленивые загрузки при таких смехотворных данных, как у меня - это эти, как их... а, преждевременные оптимизации, во! ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 12:41 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
Вот когда надо будет действительно чего-то там лениво делать или бояться, что слишком много загрузит из БД и сервер нагнёт, тогда да, можно будет отдельное свойство для Count сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 12:43 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
Чтобы не было расходов, можно фильтр поставить в "from wg in db.WeedGroups select wg", но у меня просто задача была как раз вытащить всё, без фильтра. Да, и у меня фигня написана была раньше в этом месте Biogroups = db.Biogroups .Where... А сейчас сделал так Biogroups = selectedWG.Biogroups .Where... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 12:47 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320, а че амнет галочки как загрузить?(по требованию или всегда) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 12:59 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
ТС тебя кто научил в конструкторе такое вытворять? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 13:01 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
handmadeFromRuТС тебя кто научил в конструкторе такое вытворять? Да вы к словам не привязывайтесь - мы уже это обсудили. Это такой тестовый код, чтобы репозиторий не писать. Главное то, что я отметил как "СУТЬ". ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 13:25 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320Короче, если есть каунт, то ленивые загрузки уже не катят, а раз так, то гулять так гулять. Тем более, что там не более 20 записей в одной таблице и на каждую из них по 0-5 записей через связь. Чёжь вы сразу не сказали, что надо делать такТебе сразу намекнули, что ты пишешь плохой код. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 14:46 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
skyANAuser7320Короче, если есть каунт, то ленивые загрузки уже не катят, а раз так, то гулять так гулять. Тем более, что там не более 20 записей в одной таблице и на каждую из них по 0-5 записей через связь. Чёжь вы сразу не сказали, что надо делать такТебе сразу намекнули, что ты пишешь плохой код. А новый лучше? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 17:05 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
user7320skyANAпропущено... Тебе сразу намекнули, что ты пишешь плохой код. А новый лучше?Неа. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 17:22 |
|
Как поступить, если очень хочется использовать LINQ и конструкторы с параметрами?
|
|||
---|---|---|---|
#18+
skyANAuser7320пропущено... А новый лучше?Неа. А по-моему, лучше. Ведь я реализовал всё, что хотел. А репозиторий будет в следующей серии... или в следующем сезоне. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 19:48 |
|
|
start [/forum/topic.php?all=1&fid=17&tid=1349912]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
299ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
106ms |
get tp. blocked users: |
1ms |
others: | 274ms |
total: | 717ms |
0 / 0 |