|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Ребят, подскажите пожалуйста как связь один к одному сделать в Code First логике EF. У меня есть таблица "Карточки", с полями: НомерКарточки и ИдЗаписи. И есть таблица "Записи" где есть ИдЗаписи и ещё несколько чисто информативных полей, дата, время... Так вот, когда выдается карточка в таблицу "Карточки" записывается НомерКарточки, допустим "1" и ИдЗаписи допустим "21". Соответственно в таблицу "Записи" записывается ИдЗАписи (21) и остальные информативные поля. Когда карточка возвращается, мы находим в поле НомерКарточки номер возвращенной карточки (1) и удаляем эту запись, при этом в таблице "Записи" всё остается. Т.е. таблица "Карточки" должна быть такая, динамическая, я ее хотел без поля Id сделать, но на сколько я понял, в CodeFirst без поля ID не обойтись. Подскажите как правильней будет организовать поля в табице? Я так понимаю связь создается один к одному, но не возникнет ли у меня проблем при удалении из таблицы "Карточки"? Как сделать уникальное поле "НомерКарточки"? т.е. чтобы цифры там не повторялись. И обязательно ли поле Id? Как можно без него обойтись? Был бы очень признателен примеру подобного класса! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 03:24 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Немного снизошло озарение, сделал так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Надеюсь что правильно составил, хотя поле CardNumber наверняка не уникальное... Теперь не знаю как вывести в один дата грид связанные таблицы? Получается только либо одну, либо другую: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 09:00 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Если связь действительно 1:1, то "ID записи" не нужно. Зачем вводить лишнюю сущность? При связи 1:1 используется единый ключ. Класс при этом в CF объявляется так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
тогда, делая выборку из Card вы получите выборку из двух таблиц ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 09:12 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Вот даже как... А при это я смогу удалять записи из Таблицы Cards, но чтобы в таблице Person связанные записи оставались? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 09:25 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
и ещё вопрос, а как всё таки мне теперь из таблицы Cards всё вытащить? по прежнему вытаскивается только два поля... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 09:37 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizuВот даже как... А при это я смогу удалять записи из Таблицы Cards, но чтобы в таблице Person связанные записи оставались?Нет. Это тогда уже не связь 1:1 будет. viton-zizuи ещё вопрос, а как всё таки мне теперь из таблицы Cards всё вытащить? по прежнему вытаскивается только два поля...Откуда там два поля? Там сейчас всего одно поле - Id. A вот в Person - три поля. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 10:10 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Да, я понял уже что это не то что мне нужно)) Откатился назад к моей прежней схеме сущностей. Суть в том что мне нужно с таблицы Cards записи будет удалять и чтобы при этом записи в Persons оставались! Запись в базу у меня получается, там ничего сложного, но вот вывод связанных таблиц не удается, либо одна, либо вторая выводятся таблицы, а как все таки связать!? Как то же люди такие связи реализуют... в инете примеры только с одной таблицей ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 10:31 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizu, какие связи-то? Какие у Вас отношения между Карточками и Человеками? Зачем к примеру Человеков от Карточек наследовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 10:37 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Связь как я представлял себе 1 к 1.Т.е. одна карточка может соответствовать только одному человеку и наоборот ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 10:54 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizuСвязь как я представлял себе 1 к 1.Т.е. одна карточка может соответствовать только одному человеку и наоборотнадо определиться, где находиться первичный ключ (первичные ключи), тогда будет понятно со связями. Если первичные ключи в каждой таблице свои, то это никак в схему 1:1 не вписывается, можно только ограничение на уникальность поля поставить в таблице, но это будет 1:M ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 11:01 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
первичные ключи и там и там, следовательно 1:М. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 11:10 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Ну раз так, при выборке из Card использовать .Include(n => n.Person) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 11:12 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizuСвязь как я представлял себе 1 к 1.Т.е. одна карточка может соответствовать только одному человеку...Не факт. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 11:22 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
но у одного человека может быть несколько карточек :) P.S.: от термина "карточка" попахивает DocsVision ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 11:24 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Shocker.ProНу раз так, при выборке из Card использовать .Include(n => n.Person) Воот! Сейчас опробую!) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 12:00 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
А как записи в таблицу добавлять, я делаю так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
И у меня почему то два раза добавляется в таблицу Person и один раз в Card, стоит только удалить поле с *, так все нормально записывается, но соответственно в это поле ничего не попадает и я не могу зависимости прописать! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 12:05 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
создавайте сущности не через new, а через контекст Persons.Add.... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 12:32 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Я их вроде так и создаю, это все потом передается вот сюда: Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
то есть полностью формирую card а потом уже с помощью add добавляю ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 12:38 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Забавный выходит топик. Вроде как EF должен ускорить разработку, а тут танцы с бубном какие-то выходят. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 12:44 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Вот тут: Код: c# 1.
personModel еще не принадлежит контексту ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 12:49 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAЗабавный выходит топик. Вроде как EF должен ускорить разработку, а тут танцы с бубном какие-то выходят.для нормальной разработки без EF нужно знать SQL. Для нормальной разработки на EF нужно знать EF и... SQL ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 12:51 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Shocker.ProskyANAЗабавный выходит топик. Вроде как EF должен ускорить разработку, а тут танцы с бубном какие-то выходят.для нормальной разработки без EF нужно знать SQL.NoSQL набирает обороты, так что не обязательно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2014, 13:12 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAЗабавный выходит топик. Вроде как EF должен ускорить разработку, а тут танцы с бубном какие-то выходят. Топик забавен только тем, что люди не умеют пользоваться поиском. Решение находится на раз-два, это делается ОЧЕНЬ просто и легко. Но надо же развести демагогию на пустом месте ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2014, 00:48 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANANoSQL набирает обороты, так что не обязательно :) Реляционные СУБД и NoSQL даже рядом не взаимозаменяющие вещи, хотя позиционируются они почему-то в формате SQL vs. NoSQL. Это примерно из того же разряда, что «Кошерный гиковый JavaScript набирает обороты и очень скоро похоронит C, C++, Java, C# и прочие убогие языки» ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2014, 00:53 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Эх на мусолили, а по делу то никто и не подсказал!) Проблема была в том, что нужно только один контекст создавать!) и не запихивать лишние поля с Id У меня такие сложности с освоением code first в связи с тем, что мало статей на русском, в которых бы развернуто все объяснялось. Примеров тоже не много удалось найти, которые находил, были в одну таблицу, т.е. совсем тривиальные. Находил хорошие статьи на английском, но они довольно массивны, а их проблематично читать ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2014, 07:10 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANANoSQL набирает обороты, так что не обязательно :) Реляционные СУБД и NoSQL даже рядом не взаимозаменяющие вещи, хотя позиционируются они почему-то в формате SQL vs. NoSQL.Это у тебя в голове они так позиционируются, а я такого не писал :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2014, 08:10 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizuЭх на мусолили, а по делу то никто и не подсказал!) Проблема была в том, что нужно только один контекст создавать!) и не запихивать лишние поля с Id У меня такие сложности с освоением code first в связи с тем, что мало статей на русском, в которых бы развернуто все объяснялось. Примеров тоже не много удалось найти, которые находил, были в одну таблицу, т.е. совсем тривиальные. Находил хорошие статьи на английском, но они довольно массивны, а их проблематично читатьНу так надо было взять книжку по ADO.NET и по шаблонам проектирования (их-то на русском завались), и написать простой и рабочий код. Столько времени убивать на проект величины "БД будет простая, 2-3 таблицы от силы, возможно и в одну уложусь". ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2014, 08:15 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Коллеги интересно на это как смотрят. "Там база на три таблицы, а он второй месяц возится". Так? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2014, 08:17 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizuпо делу то никто и не подсказал!) Проблема была в том, что нужно только один контекст создавать!)а где в ваших примерах два контекста? не надо переваливать на здоровую голову ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2014, 08:44 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Shocker.ProНу раз так, при выборке из Card использовать .Include(n => n.Person) По пробовал using (var context = new MyDbContext()) { IList<Card> cards = context.Cards.Include("Persons").ToList(); } Выдает ошибку: Указан недопустимый путь Include...свойство навигации с именем "Persons" ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2014, 09:09 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Shocker.Proviton-zizuпо делу то никто и не подсказал!) Проблема была в том, что нужно только один контекст создавать!)а где в ваших примерах два контекста? не надо переваливать на здоровую голову Sorry) и вправду нужного не выложил)) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2014, 09:24 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizuInclude("Persons")Shocker.ProInclude(n => n.Person)найдите 10 отличий ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2014, 09:35 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Нашел)) а что такое тогда n в данном примере?)) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2014, 09:39 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
параметр типа Card Include даст указание подгрузить данные из связанного набора ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2014, 09:42 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Почему то Include в качестве параметра принимает только string, поэтому подобный пример у меня вызывает ошибку! ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2014, 09:53 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2014, 10:03 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
блин, ну это клиника уже)) Спасибо большущее!)) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2014, 10:16 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
блин, а ошибка то осталась! "Указан недопустимый путь Include... не объявляет свойство навигации с именем "Name" ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2014, 10:22 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
и где в моем примере Name? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2014, 10:32 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizu, пора признать, что не получилось быстро внедрить EF в рабочий проект, и переписать код на то, в чём хорошо разбираетесь. А EF продолжить изучать в свободное время. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2014, 10:35 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Shocker.Proи где в моем примере Name? Делаю так: IList<Card> cards = db.Cards.Include(n => n.Person).ToList(); (Person это поле из Cards) То выводится, но ерунда,один два столбка из Cards, как и нужно и всего один столбец заполненный "MyDataBase.Data.Entities.Person" По пробовал второй вариант IList<Card> cards = db.Cards.Include(n => n.Person.Name).ToList(); Думал что конкретное одно поле при инклюдится, но данная ошибка выползла)) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2014, 10:43 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAviton-zizu, пора признать, что не получилось быстро внедрить EF в рабочий проект, и переписать код на то, в чём хорошо разбираетесь. А EF продолжить изучать в свободное время. Да проект уже сдан давно)) Это я для себя) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2014, 10:44 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizuПо пробовал второй вариантто есть я должен был догадаться, как вы извращаетесь, чтобы ответить на это:viton-zizuблин, а ошибка то осталась! "Указан недопустимый путь Include... не объявляет свойство навигации с именем "Name"вы забываете, что мне не видно вашего экрана и неизвестно, какие странные мысли вам приходят в голову. viton-zizuДелаю так: IList<Card> cards = db.Cards.Include(n => n.Person).ToList(); (Person это поле из Cards)А толку-то? То, что вы подключили коллекцию Person к выборке совсем не значит, что она попадет в List методом ToList(). Воспользуйтесь .Select(), чтобы сделать нужную выборку, и вообще, подучите LinQ для начала. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2014, 11:04 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Shocker.ProТо, что вы подключили коллекцию Person к выборке совсем не значит, что она попадет в List методом ToList()Точнее, попадет, конечно, но не на "верхний" уровень, а так и останется подчиненным полем элемента коллекции ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2014, 11:11 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
А нету на примете хорошей статейки?) был бы очень признателен) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2014, 11:34 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAЭто у тебя в голове они так позиционируются, а я такого не писал :) Вот не увиливай ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2014, 11:38 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizuА нету на примете хорошей статейки?) был бы очень признателен) Так а чо, гугол уже попал под санкции?? Ладно уж, так и быть, поищу за тебя: http://www.entityframeworktutorial.net/code-first/configure-one-to-one-relationship-in-code-first.aspx http://stackoverflow.com/questions/3622572/how-to-declare-one-to-one-relationship-using-entity-framework-4-code-first-poco http://stackoverflow.com/questions/7689532/entity-framework-code-first-one-to-one-relationship ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2014, 11:40 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAЭто у тебя в голове они так позиционируются, а я такого не писал :) Вот не увиливай Я не увиливаю: 16705748 . ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2014, 12:35 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizuА нету на примете хорошей статейки?) был бы очень признателен)О, здравая мысль! Почитать для начала книжку, статью, документацию, а не программировать при помощи интуиции и форума :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2014, 12:37 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttviton-zizuА нету на примете хорошей статейки?) был бы очень признателен) Так а чо, гугол уже попал под санкции?? Ладно уж, так и быть, поищу за тебя: http://www.entityframeworktutorial.net/code-first/configure-one-to-one-relationship-in-code-first.aspx http://stackoverflow.com/questions/3622572/how-to-declare-one-to-one-relationship-using-entity-framework-4-code-first-poco http://stackoverflow.com/questions/7689532/entity-framework-code-first-one-to-one-relationship Да ему уже не EF нужен. Нужна статья, как делать выборки с помощью .Select в Linq ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2014, 12:40 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Shocker.ProhVosttпропущено... Так а чо, гугол уже попал под санкции?? Ладно уж, так и быть, поищу за тебя: http://www.entityframeworktutorial.net/code-first/configure-one-to-one-relationship-in-code-first.aspx http://stackoverflow.com/questions/3622572/how-to-declare-one-to-one-relationship-using-entity-framework-4-code-first-poco http://stackoverflow.com/questions/7689532/entity-framework-code-first-one-to-one-relationship Да ему уже не EF нужен. Нужна статья, как делать выборки с помощью .Select в Linq Вооот, в точку!) Я просто думаю, где у меня пробел, читаю статьи про Entity а там нигде этого ничего нет! Вчера гуглил Entity Linq вот это уже другое дело)) Вчера немного на воял по другому, Код: c# 1. 2. 3. 4. 5. 6. 7.
круто круто круто))) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2014, 02:22 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Ребят, помогите разобраться еще с проблемкой Ищу по Id карточку, нахожу её но поле Person равно null! Не могу понять как такое может быть? в базе это поле заполнено... Код: c# 1. 2.
Смотрю в дебаге, а там допустим: Id = 3, CardNumber = 5, Person = null Смотрю в баз данных: Id = 3, CardNumber = 5, PersonID = 8, т.е. поле точно не пустое... Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
Не могу понять в чем ошибка то? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2014, 08:12 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2014, 08:48 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
А я вот допустим их Include, так а потом как Find по id сделать в этой объединенной таблице?) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2014, 09:18 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
получилось) Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2014, 09:21 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Но самое интересное что Id и в одной и в другой таблице полностью совпадают, как ни крути) Можно было этим и не заморачиваться)) хотя лучше конечно по феншую сделать ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2014, 09:23 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
А можно ли от редактировать только одно поле в строке? Делаю так Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
Ошибка говорит, внутренняя...) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2014, 09:46 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Ты пытаешься создать НОВЫЙ экземпляр, а потом присвоить ему id другого существующего экземпляра? Что ж тебя так заносит-то все время, поменяй траву... на подорожник ) Надо поменять поле - получил сущность из базы, поменял поле, сохранил изменение. Не надо создавать новый экземпляр. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2014, 10:04 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
А вот такой вариант у меня работает если все поля заполнить, причем обновляет как надо! А нету примера другого обновления, а то у меня только такой был)) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2014, 10:44 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Ну вот твой же код: Код: c# 1.
меняешь нужное поле и делаешь db.SaveChanges() ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2014, 10:48 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Блин, вот по навыдумываешь себе в голове, а тут все так просто оказалось! спасибо большое!) Буду на выходных дальше Linq осваивать)) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2014, 11:17 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
"Горе от ума" (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2014, 11:24 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
А еще не нашел, как мне поле CardNumber сделать уникальным? чтобы нельзя было повторяющиеся значения хранить! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2014, 11:37 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizu, хм, ну совесть-то уже пора иметь http://yandex.ru/yandsearch?text=code first уникальный индекс&clid=9582&lr=213&csg=93,2526,27,15,0,0,0&msp=1 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2014, 11:43 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2014, 12:26 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizuА я вот допустим их Include, так а потом как Find по id сделать в этой объединенной таблице?) Забудь навсегда про Include. Никогда не используй Include. Никогда. Слышышь? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2014, 18:36 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttviton-zizuА я вот допустим их Include, так а потом как Find по id сделать в этой объединенной таблице?) Забудь навсегда про Include. Никогда не используй Include. Никогда. Слышышь? Почему?) Лучше селектом?) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2014, 09:22 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Облазил эти ссылки, ничего дельного не нашел, только говорят проверяй по базе, если нету такого то значение уникально. Но это же как то неправильно, полюбому должна быть нужная команда! Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2014, 13:01 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizu, вопрос нормально задайте. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2014, 15:33 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAviton-zizu, вопрос нормально задайте.я так понимаю, он про это:viton-zizuА еще не нашел, как мне поле CardNumber сделать уникальным? чтобы нельзя было повторяющиеся значения хранить! ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2014, 15:36 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Shocker.ProskyANAviton-zizu, вопрос нормально задайте.я так понимаю, он про это:viton-zizuА еще не нашел, как мне поле CardNumber сделать уникальным? чтобы нельзя было повторяющиеся значения хранить!Хорошо. Чтобы нельзя было ХРАНИТЬ повторяющиеся значения, необходимо создать уникальный индекс (UNIQUE INDEX). А теперь, уважаемый viton-zizu, задайте правильный вопрос гуглу :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2014, 15:41 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Вот все вы витиевато подсказываете)) Сделал уже через проверку значения с таблице, благо там не много значений) Вот допустим нашел вот такую форму [Required] но мой интерпритатор не понимает этого поля, нужно через using что-то подрубить? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2014, 11:41 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizuВот допустим нашел вот такую форму [Required]это атрибут, а не форма, если так нечетко формулировать вопросы, можно много чего интересного узнать... кроме того, что нужно viton-zizu но мой интерпритатор не понимает этого поля, нужно через using что-то подрубить?Нужно. А про Object Browser слышал что-нибудь? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2014, 11:50 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizuВот все вы витиевато подсказываете)) Сделал уже через проверку значения с таблицеДак переделайте, Вы же играетесь :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2014, 11:56 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
А что такое "мой интерпретатор"? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2014, 11:58 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizu, а поставьте себе ReSharper. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2014, 12:01 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Shocker.Proviton-zizuВот допустим нашел вот такую форму [Required]это атрибут, а не форма, если так нечетко формулировать вопросы, можно много чего интересного узнать... кроме того, что нужно viton-zizu но мой интерпритатор не понимает этого поля, нужно через using что-то подрубить?Нужно. А про Object Browser слышал что-нибудь? Хорошая штука кстати, совсем забыл про него!)) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2014, 15:59 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAviton-zizu, а поставьте себе ReSharper. На сколько я знаю он платный) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2014, 16:00 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizuskyANAviton-zizu, а поставьте себе ReSharper. На сколько я знаю он платный)он бесплатен для обучения... не дорого стоит для индивидуальной разработки... да и торренты никто не отменял ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2014, 16:18 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Спасибо за совет, по ковыряю его!) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2014, 06:29 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Скорее это решарпер "поковыряет" Ваш код ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2014, 08:17 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Ребят, а подскажите ещё такой вопрос, я строку подключения к базе данных занес в Settings, и при подключении беру от туда, но начал писать "Настройки" хочу эту строку через настройки менять, а он ошибку выдает здесь: Код: c# 1.
cannot be assigned to -- it is read only ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2014, 07:41 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizu, Вы что, еще и английский не понимаете? А строки подключения принято хранить в конфигурационном файле приложения (app.config, web.config), а не settings. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2014, 08:21 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Я понимаю, поэтому и спрашиваю, как удачней переделать, про config app вот допустим не знал, реализовал через него, все отлично, но как его там можно править!? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2014, 08:28 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizuЯ понимаю, поэтому и спрашиваю, как удачней переделать, про config app вот допустим не знал, реализовал через него, все отлично, но как его там можно править!?Очень просто: Код: c# 1. 2.
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2014, 09:08 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizu, и Вы для начала сами разобраться попробуйте. А то такое чувство складывается, что любой возникающий вопрос спешите на форуме задать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2014, 09:10 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizuпро config app вот допустим не зналКнижку уже купите себе. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2014, 09:11 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Изучаем C# - вот, как раз для Вас. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2014, 09:13 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Да я конечно пытаюсь сам изучить вопрос, просто часто ошибки валяться, в которых довольно тяжело разобраться, допустим: Код: c# 1. 2. 3. 4. 5. 6.
У меня валится на строчке с ConnectionString, с ошибкой: "Ссылка на объект не указывает на экземпляр объекта" Хотя казалось бы в app config все присутствует: Код: xml 1. 2. 3. 4. 5. 6. 7. 8.
Если Делать через Settings таже самая строка отрабатывает... Код: c# 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2014, 09:43 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Ну вот, пришлось час про гуглить, чтобы узнать что я не тот appconfig правил) Изменял от приложения, а нужно было от библиотеки которая непосредственно с базой у меня работает)) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2014, 10:25 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
А вот ещё интересует такой интересный вопрос! Если допустим мой сервер БД временно не доступен, я вот думаю как мне поступать в таком случае!? Создавать локальную базу а после появления линка сливать её в общую или у Энтити на этот счет есть какой нибудь интересный механизм?) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2014, 10:29 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizuНу вот, пришлось час про гуглить, чтобы узнать что я не тот appconfig правил) Изменял от приложения, а нужно было от библиотеки которая непосредственно с базой у меня работает))Это что, жалоба? :) Пришлось ему час погуглить, бедняжка. А мы ведь могли вмето этого в наш хрустальный шар посмотреть и увидеть там отчётливо, что код относится к какой-то библиотеке, а не приложению. Книгу купите! Там разбирается по шагам как приложение написать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2014, 10:45 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizuА вот ещё интересует такой интересный вопрос! Если допустим мой сервер БД временно не доступен, я вот думаю как мне поступать в таком случае!? Создавать локальную базу а после появления линка сливать её в общую или у Энтити на этот счет есть какой нибудь интересный механизм?)Нету в Entity Framework никаких чудесных механизмов. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2014, 10:46 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAviton-zizuА вот ещё интересует такой интересный вопрос! Если допустим мой сервер БД временно не доступен, я вот думаю как мне поступать в таком случае!? Создавать локальную базу а после появления линка сливать её в общую или у Энтити на этот счет есть какой нибудь интересный механизм?)Нету в Entity Framework никаких чудесных механизмов. А по советуйте пожалуйста, есть ли смысл в описанном мной решении или может существует более рациональный вариант? Просто не хочется чтобы приложение навернулось, если БД не доступно) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2014, 06:10 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizu, Вы пытаетесь решить выдуманную проблему? В этом нет смысла. А если реальну, то о чём вообще речь? О какой инфраструктуре? Какой такой сервер ндоступен: в локальной сети, удалённый? Админы что предлагают? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2014, 08:27 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttЗабудь навсегда про Include. Никогда не используй Include. Никогда. Слышышь? hVostt , ты не ответил, почему? Как иначе подгрузить навигационные свойства в сущность? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2014, 15:28 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Shocker.ProhVosttЗабудь навсегда про Include. Никогда не используй Include. Никогда. Слышышь? hVostt , ты не ответил, почему? Как иначе подгрузить навигационные свойства в сущность? На самом деле тоже интересно! А то может он мульон лишних запросов к БД городит и можно как то это обойти) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2014, 04:58 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Shocker.Pro hVostt , ты не ответил, почему? Как иначе подгрузить навигационные свойства в сущность? Прям в сущность? Зачем? Лучше работать с проекцией: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
усё Берём токо то, что нужно. Так конечно неудобно делать, лучше воркать с типизированными проекциями: Код: c# 1. 2. 3. 4. 5. 6. 7.
Это проекции Automapper, в SomeDataView поля, которые нам нужны. Также можно делать Flatten проекции (в одной плоскости): ClientName <-- Client.Name ClientCount <-- Client.Count Ну и т.д. Использование Include ничего не даёт на самом деле, кроме мнимого упрощения, которое затем приведёт к неизбежным проблемам в тестировании и сопровождении. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2014, 19:07 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizuНа самом деле тоже интересно! А то может он мульон лишних запросов к БД городит и можно как то это обойти) Чтобы это обойти надо делать точно также как в типичном SQL (брать только то, что реально нужно), только с помощью LINQ. Тогда запросы будут компактными и быстрыми. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2014, 19:08 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVostt, я так понял, что человек хочет получить полный граф объекта, а ты ему только часть полей зачем-то предлагаешь :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2014, 09:50 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVostt Спасибо, не все правдо догнал, но попробую разобраться)) Ребят, по советуйте, пробую AutoComplete в textbox, Класс который предлагает варианты для автозаполнения textbox. Варианты для выпадающего списка генерю с помощью линк, получается каждый раз когда пользователь забивает этот textbox, в базу идет запрос. Я вот думаю, это правильно вообще!? Или сделать запрос один рас а потом уже этот массив строк где-нибудь хранить, но где тогда!? Вот голову ломаю как бы правильней сделать ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2014, 05:09 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizu, а чем запрос не устраивает? Долго выполняется? Хранить можно на клиенте, в кэше. Можно elasticsearch заюзать. Зависит от конкретной задачи. А для начала например можно LINQ запрос оптимизировать, или вообще переписать без использования LINQ. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2014, 10:11 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAhVostt, я так понял, что человек хочет получить полный граф объекта, а ты ему только часть полей зачем-то предлагаешь :) Ну так а чего морочиться, надо сразу всю базу данных в память загружать! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 08:51 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAhVostt, я так понял, что человек хочет получить полный граф объекта, а ты ему только часть полей зачем-то предлагаешь :) Ну так а чего морочиться, надо сразу всю базу данных в память загружать! Мог бы промолчать, или извиниться за невнимательность. Зачем так толсто троллить? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 09:57 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAМог бы промолчать, или извиниться за невнимательность. Зачем так толсто троллить? Какая невнимательность? Что ещё за наезд? Я человеку предложил взять не «часть полей», а только то, что ему нужно. При чём под это определение могут попадать не поля, а целые объекты. Какие проблемы? И что такое «полный граф» объекта? Вариант с Include -- это по сути и есть указание «то, что нужно», только тупой и уродский. И не исключена ситуация, что «полный граф» это и будет вся база данных. В общем ты сам чего-то сморозил. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 20:30 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVostt, у ТСа в базе, в таблице Persons содержаться персональные данные каких-то людей: Код: c# 1. 2. 3. 4. 5. 6.
и есть таблица каких-то карточек (Cards), что заведены для этих людей: Код: c# 1. 2. 3. 4. 5. 6.
ТС хочет выбрать данные определённой карточки по её идентификатору: Код: c# 1. 2.
Но такой запрос возвращает результат без персональных данных. Чтобы включить последние в результат запроса, ТСу предложили использовать Include(). А ты сказал, что так плохо и начал на каких-то абстрактных примерах утверждать, что данные о Person вообще подгружать не надо. Вообщем фигня какая-то :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 10:13 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAсодержаться содержатсяпоправил ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 10:16 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANA, ну я смотрел описание - include в ef действительно нежедательно использовать, кроме самых простых случаев ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 14:58 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAНо такой запрос возвращает результат без персональных данных. Чтобы включить последние в результат запроса, ТСу предложили использовать Include(). А ты сказал, что так плохо и начал на каких-то абстрактных примерах утверждать, что данные о Person вообще подгружать не надо. Вообщем фигня какая-то :) И повторю: нет, не надо, если они не нужны. Если нужны, включаешь Person в запрос (LINQ), или получаешь его «лениво». Это единый и полностью управляемый способ получать данные. С помощью Include, например, нельзя указать брать из базы только те данные, которые не помечены как удалённые. В общем, я без понятия зачем вообще этот Include добавили в интерфейс. Бредятина какая-то. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 15:49 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttЕсли нужны, включаешь Person в запрос (LINQ), или получаешь его «лениво». Это единый и полностью управляемый способ получать данные.Дак вот и дай ТСУ пример, как ему вытащить полный объект типа Card по Id, а не разглагольствуй про проекции, возвращаемые абстрактными репозиториями. Разве это так сложно для тебя? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 16:05 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ViPRosskyANA, ну я смотрел описание - include в ef действительно нежедательно использовать, кроме самых простых случаевА я где-то с этим спорил? Мне не понравилось, что вместо нормального объяснения, ТСу предлагается совершенно не то, что ему надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 16:07 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAДак вот и дай ТСУ пример, как ему вытащить полный объект типа Card по Id, а не разглагольствуй про проекции, возвращаемые абстрактными репозиториями. Разве это так сложно для тебя? Ты бредишь что ли? Ты сам-то до сих пор так и не предложил универсальный метод типа GetFullObjectById(), чего ты от меня хочешь? Укажешь ли ты что тебе брать через Include или через LINQ -- это всё равно чёткое указание что брать. Я сказал, что Include гумно, не пользуйтесь им никогда, лучше LINQ, проекции, Lazy -- по вкусу. Какие претензии? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 16:11 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAМне не понравилось, что вместо нормального объяснения, ТСу предлагается совершенно не то, что ему надо. Ааа.. так всё-таки экстрасенсы вышли из отпуска? Теперь будем знать ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 16:13 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVostt, lazy в ef по описанию тоже говно (читает только один раз) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 16:18 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
там какой то Load есть у ссылки, может лучше ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 16:19 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
как у DataTable :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 16:19 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ViPRoshVostt, lazy в ef по описанию тоже говно (читает только один раз) Lazy делает ровно то, что требуется. Какое же это говно? С учётом кеширования, которое прикручивается к EF, это решает проблемы с лишними запросами к БД. Так всё пучком ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 16:35 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAДак вот и дай ТСУ пример, как ему вытащить полный объект типа Card по Id, а не разглагольствуй про проекции, возвращаемые абстрактными репозиториями. Разве это так сложно для тебя? Ты бредишь что ли? Ты сам-то до сих пор так и не предложил универсальный метод типа GetFullObjectById(), чего ты от меня хочешь? Укажешь ли ты что тебе брать через Include или через LINQ -- это всё равно чёткое указание что брать. Я сказал, что Include гумно, не пользуйтесь им никогда, лучше LINQ, проекции, Lazy -- по вкусу. Какие претензии?Обиделся что-ли? К чему бессмысленный срач разводишь? Я не пользуюсь EF и QueryableExtensions, вот и не предлагаю ничего. Ты согласен, что ТСу нужен полный объект, а не проекция? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 16:43 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAМне не понравилось, что вместо нормального объяснения, ТСу предлагается совершенно не то, что ему надо. Ааа.. так всё-таки экстрасенсы вышли из отпуска? Теперь будем знать Ты меня поддеть что-ли пытаешься? :) Не нужно быть телепатом, чтобы посмотрев на куски кода ТС, понять, чего он хочет. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 16:46 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAhVosttпропущено... Ты бредишь что ли? Ты сам-то до сих пор так и не предложил универсальный метод типа GetFullObjectById(), чего ты от меня хочешь? Укажешь ли ты что тебе брать через Include или через LINQ -- это всё равно чёткое указание что брать. Я сказал, что Include гумно, не пользуйтесь им никогда, лучше LINQ, проекции, Lazy -- по вкусу. Какие претензии?Обиделся что-ли? К чему бессмысленный срач разводишь? Я не пользуюсь EF и QueryableExtensions, вот и не предлагаю ничего. Ты согласен, что ТСу нужен полный объект, а не проекция? Вот-вот, ты не пользуешься EF и ничего не предлагаешь. Ещё твой бессмысленный коммент: skyANAЗабавный выходит топик. Вроде как EF должен ускорить разработку, а тут танцы с бубном какие-то выходят. Никаких танцев с бубном. Просто ты этот инструмент не знаешь, следовательно я не понимаю смысла твоих наездов. Так, для справки. Полный объект, это совокупность его полей. Навигационные поля нужны для построения запросов в LINQ, хотя по ошибке воспринимаются как часть содержимого объекта -- но это не так, как бы оно не выглядело. Данные по навигационным полям не являются частью полного объекта. Так что ещё раз объясни, что ты хочешь донести? Я топикастеру дал совет, каким образом собирать нужный срез данных, с помощью проекций, с помощью LINQ запросов, или получать данные «лениво», и дал совет не использовать Include. Ты с чем конкретно не согласен? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 18:14 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAТы меня поддеть что-ли пытаешься? :) Не нужно быть телепатом, чтобы посмотрев на куски кода ТС, понять, чего он хочет. Чего он хочет я не знаю, уже было достаточно сказано и про организацию связей 1-1 и как получать связанные данные. Пока ТС дополнительных вопросов не задавал. Значит всё в ажуре. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 18:16 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVostt, зачем ты сюда ещё и навигационные поля-то притянул? ТС о них ничего не говорил :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 18:33 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttПока ТС дополнительных вопросов не задавал. Значит всё в ажуре.А зачем ему вопросы задавать по тому, что ему не нужно? :) А как нужно у него уже работате: 16752158 . ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 18:35 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttЧего он хочет я не знаю.Ты меня разочаровал. Код же тривиальный ( 16752158 ), по нему всё понятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 18:38 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAhVostt, зачем ты сюда ещё и навигационные поля-то притянул? ТС о них ничего не говорил :) Код: c# 1. 2. 3. 4. 5. 6.
А это что, по-твоему? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 19:11 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAhVosttПока ТС дополнительных вопросов не задавал. Значит всё в ажуре.А зачем ему вопросы задавать по тому, что ему не нужно? :) А как нужно у него уже работате: 16752158 . Это очевидно, плохой код. Но ТС виднее. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 19:13 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVostt, ну я не знаю, давай на примере что-ли тебе объясню. Вот есть у нас такой JSON: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9.
и есть код: Код: c# 1. 2.
Вот это называется преобразовать JSON в граф объекта (полный). ТСу нужно тоже самое, только данные не в JSON, а в БД. И при помощи EF :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 19:27 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAТСу нужно тоже самое, только данные у него не в JSON, а в БД. И сделать это нужно не JavaScriptSerializer-ом, а при помощи EF :)Поправил. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 19:28 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAВот это называется преобразовать JSON в граф объекта (полный). ТСу нужно тоже самое, только данные не в JSON, а в БД. И при помощи EF :) Ну ладно, спишем на то, что пример с JSON ты сам выдумал (ТС ничего про него не говорил). JSON сериализует объект со всеми потрохами, для сериализатора в принципе нет понятия «навигационное свойство». А для EF вложенный объект, это на самом деле не вложенный объект, а внешняя связь с другим объектом. Ты сравниваешь пеликана и рябчика, просто потому что они «птицы», но сравнение некорректное. Поэтому «тоже самое» не получится, из-за нарушения банальной логики в рассуждениях. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 20:35 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAТСу нужно тоже самое, только данные не в JSON, а в БД. И при помощи EF :) И не забывай, что благодаря Lazy мы итак получаем «полный граф объекта» без плясок с бубнами. Вопросы с производительностью надо решать тогда, когда появляется необходимость. Нет нужды безсмысленно всё вкорячивать в «адын запрос». Нафига вообще страдать подобной ерундой? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 20:38 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVostt, то есть Lazy не имеет собстенного кеша и смотрит на общий какой то кеш? как это все синхронизировано? например Lazy загрузил в кеш какую то коллекцию, прога по каким то причинам удалила (remove) некорое количество из коллекции. что будет делать Lazy в следующий раз? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 20:47 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAВот это называется преобразовать JSON в граф объекта (полный). ТСу нужно тоже самое, только данные не в JSON, а в БД. И при помощи EF :) Ну ладно, спишем на то, что пример с JSON ты сам выдумал (ТС ничего про него не говорил). JSON сериализует объект со всеми потрохами, для сериализатора в принципе нет понятия «навигационное свойство». А для EF вложенный объект, это на самом деле не вложенный объект, а внешняя связь с другим объектом. Ты сравниваешь пеликана и рябчика, просто потому что они «птицы», но сравнение некорректное. Поэтому «тоже самое» не получится, из-за нарушения банальной логики в рассуждениях.Как же с тобой трудно. Пример я выдумал для иллюстрации того, что должно получиться на выходе, какой card, и что такое граф объекта (полный). Ты же сам спрашивал, что я хочу донести. До примера-то ты чего докопался, привычка? Зачем ты полез в дебри с пеликаном и рябчиком? Как это "тоже самое" не получится? ТС же получил. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 20:55 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAТСу нужно тоже самое, только данные не в JSON, а в БД. И при помощи EF :) И не забывай, что благодаря Lazy мы итак получаем «полный граф объекта» без плясок с бубнами. Вопросы с производительностью надо решать тогда, когда появляется необходимость. Нет нужды безсмысленно всё вкорячивать в «адын запрос». Нафига вообще страдать подобной ерундой?Чёрт, ну вот куда тебя несёт. Зачем ты начал рассказывать про то, когда полный граф нужен сразу, а когда следует использовать Lazy? Умные бородатые дядьки давно про это уже расписали, а я прочитал и намотал на ус :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 20:58 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAКак же с тобой трудно. Пример я выдумал для иллюстрации того, что должно получиться на выходе, какой card, и что такое граф объекта (полный). Ты же сам спрашивал, что я хочу донести. До примера-то ты чего докопался, привычка? Зачем ты полез в дебри с пеликаном и рябчиком? Как это "тоже самое" не получится? ТС же получил. :) А что трудного-то? Понять простейшую мысль, которую я озвучил: «Include — это плохо»? Реально, никак не получается одолеть? Я уже до 3-х слов сократил. Может на китайский перевести? Или на узбекский? Какие сложности с пониманием-то? И не съезжай на ТС. Какие ещё дебри? Ты реально не понимаешь что такое навигационное свойство, и как оно работает? Загляни в исходники что ли. Навигационное свойство ≠ вложенный объект — так понятней? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 22:59 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAЧёрт, ну вот куда тебя несёт. Зачем ты начал рассказывать про то, когда полный граф нужен сразу, а когда следует использовать Lazy? Умные бородатые дядьки давно про это уже расписали, а я прочитал и намотал на ус :) Это то, что нужно ТС и подходит для твоего примера с JSON. Поясню свою мысль ещё раз: «Include — это плохо». А чего когда следует использовать зависит от задачи. Или ты с чем-то не согласен? Заметь, я этот вопрос уже который раз задаю. С чем ты не согласен? Что не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 23:04 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAКак же с тобой трудно. Пример я выдумал для иллюстрации того, что должно получиться на выходе, какой card, и что такое граф объекта (полный). Ты же сам спрашивал, что я хочу донести. До примера-то ты чего докопался, привычка? Зачем ты полез в дебри с пеликаном и рябчиком? Как это "тоже самое" не получится? ТС же получил. :) А что трудного-то? Понять простейшую мысль, которую я озвучил: «Include — это плохо»? Реально, никак не получается одолеть? Я уже до 3-х слов сократил. Может на китайский перевести? Или на узбекский? Какие сложности с пониманием-то? И не съезжай на ТС. Какие ещё дебри? Ты реально не понимаешь что такое навигационное свойство, и как оно работает? Загляни в исходники что ли. Навигационное свойство ≠ вложенный объект — так понятней?Алё, гараж! Мне не интересны эти подробности, я не пользуюсь EF и не планирую. Просто напиши код, что вернёт тоже самое, что сейчас возвращает ТС при помощи Include, но без Include. Какие проблемы? Я могу написать на чистом ADO.NET, на BLToolkit, NHibernate, Dapper. Но ТСу нужно на EF :) Разве это сложно? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 23:06 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAАлё, гараж! Мне не интересны эти подробности, я не пользуюсь EF и не планирую. Просто напиши код, что вернёт тоже самое, что сейчас возвращает ТС при помощи Include, но без Include. Какие проблемы? Я могу написать на чистом ADO.NET, на BLToolkit, NHibernate, Dapper. Но ТСу нужно на EF :) Разве это сложно? Ты меня убиваешь. Зачем же ты тогда вклиниваешься в разговор о том, чего не знаешь? ТС рассматривает навигационные свойства как вложенные объекты, и, соответственно, хочет получить их как вложенные типа одним запросом. То, что ты зачем-то называешь «графом», а это является не более чем внешними связями. EF даёт способ работать с ними как с вложенными объектами, загружая их лениво -- это более чем удовлетворяет требования ТС. С чем ты не согласен??????? Сколько раз можно у тебя просить ответить на этот вопрос? Ты не согласен ------ С ЧЁМ? С ЧЕМ ТЫ НЕ СОГЛАСЕН? А, мужчина? Не взрывай мозг! ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 23:27 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAЯ могу написать на чистом ADO.NET, на BLToolkit, NHibernate, Dapper. Но ТСу нужно на EF :) А на чистом SQL, можешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 23:27 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Ладно, порылся в Яндексе. Навигационные свойства и lazy loading Include() в EF - это реализация так называемой "жадной загрузки" или eager loading . То есть как раз то, что нужно ТС. И ничего плохого в данной конкретной задаче в нём нет. А hVostt походу тупо фанат lazy loading и проекций (от Стаса видимо заразился). Вот только объяснить этого толком не способен. Вообщем разобрались. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 23:30 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAЛадно, порылся в Яндексе. Навигационные свойства и lazy loading Include() в EF - это реализация так называемой "жадной загрузки" или eager loading . То есть как раз то, что нужно ТС. И ничего плохого в данной конкретной задаче в нём нет. А hVostt походу тупо фанат lazy loading и проекций (от Стаса видимо заразился). Вот только объяснить этого толком не способен. Вообщем разобрались. Ну наконец-то ты хоть разобрался в вопросе. Плохого в Include настолько много, что лучше на самом раннем этапе от него навсегда отказаться. Понимаю, что желание ТС Include удовлетворяет, но я предупреждаю, что будешь использовать Include -- поимеешь проблем в будущем. Ты с этим не согласен? Кстати, «Жадная загрузка» не уменьшает нагрузки на БД, а только увеличивает её, так что это плохо, и не надо говорить «ничего плохого нет», я конечно понимаю что тебе по барабану, но не стоит раздавать плохих советов. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 23:38 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAВот только объяснить этого толком не способен. И кстати, что за манера делать такие голословные утверждения? Или это у тебя включён режим троллинга? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 23:40 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAЛадно, порылся в Яндексе. Навигационные свойства и lazy loading Include() в EF - это реализация так называемой "жадной загрузки" или eager loading . То есть как раз то, что нужно ТС. И ничего плохого в данной конкретной задаче в нём нет. А hVostt походу тупо фанат lazy loading и проекций (от Стаса видимо заразился). Вот только объяснить этого толком не способен. Вообщем разобрались. Ну наконец-то ты хоть разобрался в вопросе. Плохого в Include настолько много, что лучше на самом раннем этапе от него навсегда отказаться. Понимаю, что желание ТС Include удовлетворяет, но я предупреждаю, что будешь использовать Include -- поимеешь проблем в будущем. Ты с этим не согласен?Не согласен. Ничего плохого в eager loading нет. Нужно просто понимать, где жадно загружать, а где лениво. hVosttКстати, «Жадная загрузка» не уменьшает нагрузки на БД, а только увеличивает её, так что это плохо, и не надо говорить «ничего плохого нет», я конечно понимаю что тебе по барабану, но не стоит раздавать плохих советов.Глупости. Не зачем такой простой объект доставать в два запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 23:46 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAВот только объяснить этого толком не способен. И кстати, что за манера делать такие голословные утверждения? Или это у тебя включён режим троллинга? Никакого троллинга. ИМХО ты распыляешься на какие-то проекции, абстрактные репозитории, какие-то эмоциональные выссказывания. Вообщем получается много букофф и мало толку. Можно было просто объяснить, почему ты не любишь "жадную загрузу" и рекомендуешь "ленивую". И кусок кода для классов ТС приложить в качестве примера. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2014, 23:52 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAНикакого троллинга. ИМХО ты распыляешься на какие-то проекции, абстрактные репозитории, какие-то эмоциональные выссказывания. Вообщем получается много букофф и мало толку. Можно было просто объяснить, почему ты не любишь "жадную загрузу" и рекомендуешь "ленивую". И кусок кода для классов ТС приложить в качестве примера. А похоже на троллинг. Мало толку для кого? Для тебя или для ТС? Почему ты решаешь за ТС или ещё за кого-то, не понимаю. Объяснить я бы мог. Но пожалуйста, не поленись найти в топике вопрос «почему?» заданный мне на счёт Include? Разве должен я сам себе его задавать за кого-то и тут же на него отвечать? Ты уже сам запутался в показаниях. И при чём тут любовь/нелюбовь -- ты по такому принципу что ли работаешь? Не люблю я оператор for, буду всегда использовать foreach ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 00:09 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVostt, да ему пофиг все отвечает на вопрос по еф, при этом не знает еф отвечает на вопрос о редактировании таблиц, при этом не работает с таблицами и нифига не знает что это такое думаю он и скл не знает больной чек ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 00:13 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAНе согласен. Ничего плохого в eager loading нет. Нужно просто понимать, где жадно загружать, а где лениво. Нужно понимать, что ты работаешь с реляционной СУБД и тогда все встанет на свои места. «Жадная загружка» -- это костыль, призванный скрыть этот факт, который оборачивается задницей. Не стоит лезть в задницу -- неужели это не очевидно? skyANAГлупости. Не зачем такой простой объект доставать в два запроса. И не надо. Возьми то, что тебе нужно одним запросом. Всю жизнь так с базами данных работали. С другой стороны, с кешированием все вопросы с запросами снимаются, к EF кеш прикручивается. Проблем никаких не вижу. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 00:16 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ViPRosотвечает на вопрос по еф, при этом не знает еф Это меня вообще в тупик ставит. Я же не лезу кому-то что-то доказывать в топики, где обсуждаются технологии и инструменты, с которыми я не работаю. Странно это всё, странно ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 00:18 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttОбъяснить я бы мог. Но пожалуйста, не поленись найти в топике вопрос «почему?» заданный мне на счёт Include? Разве должен я сам себе его задавать за кого-то и тут же на него отвечать? Ты уже сам запутался в показаниях.У тебя никаких паталогий не наблюдается? Не поленился и нашёл: 16780441 hVosttЗабудь навсегда про Include . Никогда не используй Include. Никогда. Слышышь?Shocker.Pro hVostt , ты не ответил, почему? Как иначе подгрузить навигационные свойства в сущность?viton-zizuНа самом деле тоже интересно! А то может он мульон лишних запросов к БД городит и можно как то это обойти)Специально выделил тебе вопрос почему, заданный тебе на счёт Include. Ну теперь-то объяснишь свою позицию? Только давай нормально, а не плохо, потому что я уже три раза сказал, что плохо. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 00:20 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ViPRoshVostt, да ему пофиг все отвечает на вопрос по еф, при этом не знает еф отвечает на вопрос о редактировании таблиц, при этом не работает с таблицами и нифига не знает что это такое думаю он и скл не знает больной чекЧто за глупости ты пишешь? Где я отвечал на вопрос по EF? Ссылку дать сможешь? Где я отвечал на вопрос о редактировании таблиц? Ссылку дать сможешь? С чего ты взял, что я не работаю с таблицами? С того что CMS модуль Абрикоса хранит данные в MongoDB и там есть контур конкурентного редактирования? И небось уже бухнул на ночь глядя, что решил, что обзываться уже можно на форуме? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 00:26 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttViPRosотвечает на вопрос по еф, при этом не знает еф Это меня вообще в тупик ставит. Я же не лезу кому-то что-то доказывать в топики, где обсуждаются технологии и инструменты, с которыми я не работаю. Странно это всё, странно Ну не строй из себя дурака. Мои замечания к тебе относились не к EF, а к тому, что ты совсем не то, что надо ТСу предлагаешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 00:28 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Кстати, Сахават, по твоей логике выходит, что ты сам больной человек. А учитывая, что скоро на пенсию, то сильно больной, нежели я :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 00:32 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAУ тебя никаких паталогий не наблюдается? Не поленился и нашёл: 16780441 А ответ мой не забыл почитать? Я дал ответ, доп. вопросов не последовало. Но тут вмешался ты skyANAСпециально выделил тебе вопрос почему, заданный тебе на счёт Include. Ну теперь-то объяснишь свою позицию? Только давай нормально, а не плохо, потому что я уже три раза сказал, что плохо. Позиция простая, уже в 2-х словах: «Include — плохо». Почему плохо? 1. Include это EF-specific, зависимость от сборки с EF — самый основной минус в «карму» 2. Include в абсолютном большинстве случаев создаёт SQL-запрос с сильно избыточным результатом 3. Include не позволяет указать ограничения (примеры: по доступу, по маркеру «удалён», по другим хар-кам) 4. Include приходится указывать для каждого свойства, которое требуется подгрузить, а их может быть много, если загружаемые объекты имеют ещё вложенные свойства, их тоже требуется указывать, таким образом летит к чертям концепция «загрузки графа объекта», кроме того снижается «порог чувствительности» того, что мы работаем с реляционной БД, а это может сильно ударить (и обязательно не раз ударит) по темечку 5. В противовес Include -- если объект был загружен в сессии контекста, то обращение к навигационному свойству не вызовет обращение к базе данных. Пример: Код: c# 1. 2. 3. 4. 5. 6. 7.
Соответственно, накуй этот костыль Include не нужен. Забыть навсегда и никогда не вспоминать. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 00:39 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANA, я тебя специально поддел, что бы ты понял, что пора перестать обзывать других глупцами видишь как больно? из за того что тебе непонятно по каким то причинам речь другого, не надо обзываться, просто пропусти мимо и все :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 00:39 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAНу не строй из себя дурака. Мои замечания к тебе относились не к EF, а к тому, что ты совсем не то, что надо ТСу предлагаешь. Так ты личный представитель ТС я не понял? ТС вопросов не задаёт, а задаёшь их ты, значит это надо тебе, а не ему. Вообще никто не знает, зайдёт ли ТС ещё когда-нибудь в этот тред, так что не надо строить из себя помогающую ТС-у мать Терезу ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 00:40 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
в не пью, не дую и т.д. и мне правда до пенсии 2 года (не дождетесь конечно :)) потому полече воще то если пишу непонятно но это интересно тебе то попробуй разобраться, а не интересно так мимо и все ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 00:42 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttТС вопросов не задаёт, а задаёшь их ты, значит это надо тебе, а не ему.не-не, вопрос-то задал я и с удовольствием и познаванием слежу за топиком ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 00:43 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVostt, а почему бы Include не вынести за скобки? типа загрузить по всем навигационным? почему скл избыточен? по идее include должна возвращать несколько резульсетов или она генерирует лефт джойны и потом парсить в памяти? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 00:46 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ViPRosа почему бы Include не вынести за скобки? типа загрузить по всем навигационным? Нет такого способа. ViPRosпочему скл избыточен? Избыточен не SQL, а результат. ViPRosпо идее include должна возвращать несколько резульсетов или она генерирует лефт джойны и потом парсить в памяти? Именно ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 00:47 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ViPRosskyANA, я тебя специально поддел, что бы ты понял, что пора перестать обзывать других глупцами видишь как больно?Совсем не больно. Но спасибо, что ты признал то, что глупости написал. ViPRosиз за того что тебе непонятно по каким то причинам речь другого, не надо обзываться, просто пропусти мимо и все :)Мне было не понятно то, почему ТСу, кто хочет "жадно" загрузить объект, предлагаются какие-то проекции. Я это озвучил. Что тебя тут смущает? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 00:48 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Shocker.ProhVosttТС вопросов не задаёт, а задаёшь их ты, значит это надо тебе, а не ему.не-не, вопрос-то задал я и с удовольствием и познаванием слежу за топиком Вот! Не зря значит я тут докапываюсь до сути :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 00:49 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANA, инклюд в еф (со слов хвоста) строить лефт джойн - что не есть хорошо и воще ооочень плохо, так как при этом низзя загрузить даже дерево, не то что б граф кроме того нет способа сразу задать инклюд для всего графа потому инклюд в еф - говно ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 00:54 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
а в твоем монго (с твоих слов и по твоему прмеру) нет никакого графа объектов, а есть вложенная разметка ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 00:55 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
а Хвост не ответил на мой вопрос про Лейзи и Кеш (как лейзи работает с кешем) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 00:56 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAМне было не понятно то, почему ТСу, кто хочет "жадно" загрузить объект, предлагаются какие-то проекции. Я это озвучил. Что тебя тут смущает? Ты глубже посмотреть не пробовал? Предлагаются не «какие-то проекции», а более эффективный способ работать с данными. Нужно же понимать, что пример с Cart.Person очень ограниченный, в реале объекты гораздо больше и схема сложнее. Поэтому Include и «жадные» загрузки неизбежно приведут к проблемам. Я человека пытаюсь оградить от этого, а ты непонятно чего хочешь. Типа говорят человеку, что для постройки дома нужны чертежи, ты же опираясь на пример с будкой, впариваешь, что чертежи ненужны, сойдёт и так. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 00:59 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ViPRosа Хвост не ответил на мой вопрос про Лейзи и Кеш (как лейзи работает с кешем) Работает кеш. Если в сессии объект был загружен, он не будет загружаться ещё раз. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 00:59 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVostt, значит лейзи запросто можно обмануть? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:01 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ViPRosинклюд в еф (со слов хвоста) строить лефт джойн - что не есть хорошо и воще ооочень плохо, так как при этом низзя загрузить даже дерево, не то что б граф кроме того нет способа сразу задать инклюд для всего графа потому инклюд в еф - говно Именно об этом и речь ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:01 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttПозиция простая, уже в 2-х словах: «Include — плохо». Почему плохо? 1. Include это EF-specific, зависимость от сборки с EF — самый основной минус в «карму»ТС писал на форуме о том, что знает SQL и ADO.NET, и в данный момент изучает именно специфику EF. hVostt2. Include в абсолютном большинстве случаев создаёт SQL-запрос с сильно избыточным результатомА данный конкретный случай иллюстрирует, что результат именно тот, что нужен ТСу. hVostt3. Include не позволяет указать ограничения (примеры: по доступу, по маркеру «удалён», по другим хар-кам)А этого и не требуется. hVostt4. Include приходится указывать для каждого свойства, которое требуется подгрузить, а их может быть много, если загружаемые объекты имеют ещё вложенные свойства, их тоже требуется указывать, таким образом летит к чертям концепция «загрузки графа объекта», кроме того снижается «порог чувствительности» того, что мы работаем с реляционной БД, а это может сильно ударить (и обязательно не раз ударит) по темечкуЭто всё понятно, но опять-таки описанная ситуация не относится к задаче ТСа. hVostt5. В противовес Include -- если объект был загружен в сессии контекста, то обращение к навигационному свойству не вызовет обращение к базе данных. Пример: Код: c# 1. 2. 3. 4. 5. 6. 7.
В случа с Include() "дополнительного обращения к базе" тоже не будет. Причём мы явно это знаем. hVosttСоответственно, накуй этот костыль Include не нужен. Забыть навсегда и никогда не вспоминать.Не согласен. Для задачи ТС Include() прекрасно подходит. А что, в EF нет другого способа "жадной загрузки"? В статье только Include() упоминается. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:01 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
т.е. полагаемся только на стратегию кеширования ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:01 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ViPRoshVostt, значит лейзи запросто можно обмануть? Да, пример выше я привёл. Ну только это не обман, а нормальное поведение. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:01 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAНе согласен. Для задачи ТС Include() прекрасно подходит. Для какой задачи? Ты УВЕРЕН что знаешь задачу ТС? Он привёл один маленький примерчик. Думаешь это и есть задача? Ахааххаах... это... довольно мило, если ты так считаешь ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:03 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANA, "жадная" в математике определено, потому скорее это "полная" воще то я считаю что ОРМ только и нужен для того что бы одним махом загрузить объект или его проекции при этом хорошо бы иметь и лейзи получается что в ЕФ нет ни того, ни другого :( ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:04 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAНе согласен. Для задачи ТС Include() прекрасно подходит. Для какой задачи? Ты УВЕРЕН что знаешь задачу ТС? Он привёл один маленький примерчик. Думаешь это и есть задача? Ахааххаах... это... довольно мило, если ты так считаешь это они тут мальчиком взяли за правило - "к пуговицам претензии есть??", я не зря Райкина (будь он неладен) вспоминал :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:06 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAТС писал на форуме о том, что знает SQL и ADO.NET, и в данный момент изучает именно специфику EF. Ты мой пункт 1. вооооообще не понял. Доступ к данным обычно инкапсулируется в отдельный слой, там же живёт EF. Кто работает со слоем данных знать не знают никаких Include. skyANAА что, в EF нет другого способа "жадной загрузки"? В статье только Include() упоминается. Есть. Load. Тоже EF-specific, и ещё хуже чем Include. Позволяет работать с навигационными свойствами без модификатора virtual . ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:07 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVostt, ты вот теперь представляешь почему у ЕФ такие проблемы? (хотя бы то что низзя инклюд вывести за скобки) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:09 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ViPRosskyANA, "жадная" в математике определено, потому скорее это "полная" воще то я считаю что ОРМ только и нужен для того что бы одним махом загрузить объект или его проекции при этом хорошо бы иметь и лейзи получается что в ЕФ нет ни того, ни другого :( Всё встаёт на свои места, когда понимаешь, что навигационные свойства ≠ вложенные объекты. Странно, почему этот факт многие игнорируют? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:10 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAМне было не понятно то, почему ТСу, кто хочет "жадно" загрузить объект, предлагаются какие-то проекции. Я это озвучил. Что тебя тут смущает? Ты глубже посмотреть не пробовал? Предлагаются не «какие-то проекции», а более эффективный способ работать с данными. Нужно же понимать, что пример с Cart.Person очень ограниченный, в реале объекты гораздо больше и схема сложнее. Поэтому Include и «жадные» загрузки неизбежно приведут к проблемам. Я человека пытаюсь оградить от этого, а ты непонятно чего хочешь. Типа говорят человеку, что для постройки дома нужны чертежи, ты же опираясь на пример с будкой, впариваешь, что чертежи ненужны, сойдёт и так.В реальности бывают и простые объекты и сложные. Вот нужно будет тебе 100 карточек через Web API отдать наружу, ты получается 200 запросов к БД вместо 100 будешь посылать даже если чётко представляешь, что "жадная загрузка" не представляет из себя избыточный SELECT? Ну и опять какие-то левые слова пошли :) Что такое чертежи? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:11 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ViPRoshVostt, ты вот теперь представляешь почему у ЕФ такие проблемы? (хотя бы то что низзя инклюд вывести за скобки) Я не вижу никаких проблем. Include нельзя вынести за скобки, потому что БД может быть спроектирована таким образом, что вытащишь один объект, а он через связи потянет за собой половину или почти всю базу данных. Include это костыль, призванный удовлетворить тех упёртых ребят, которые никак не хотят видеть разницу между навигационными свойствами и вложенными объектами. Работать с «целым» объектом -- кажется вот как видится ORM, но это совсем не так. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:13 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAНе согласен. Для задачи ТС Include() прекрасно подходит. Для какой задачи? Ты УВЕРЕН что знаешь задачу ТС? Он привёл один маленький примерчик. Думаешь это и есть задача? Ахааххаах... это... довольно мило, если ты так считаешь Уверен, так что завязывай троллить, глупо. ТС чёрными русскими буквами писал, что рабочий проект сдан давно, он чисто для себя балуется с EF: 16746956 . Видимо из-за этого кстати и вопросы дополнительные не задаёт, занялся чем другим по работе. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:16 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAВот нужно будет тебе 100 карточек через Web API отдать наружу, ты получается 200 запросов к БД вместо 100 будешь посылать даже если чётко представляешь, что "жадная загрузка" не представляет из себя избыточный SELECT? Почему? Зная, что Person внутри Cart, это навигационное свойство , а не вложенный объект ? Ты пытаешься это знание скрыть. А если таких свойств 20? А у них еще по 10? Покажи-ка мне какая получится инструкция с Include().Include().Include().Include().Include().Include() ? skyANAНу и опять какие-то левые слова пошли :) Что такое чертежи? У тебя банальные проблемы с метафорами. Макконнелла почитай. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:17 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ViPRosа в твоем монго (с твоих слов и по твоему прмеру) нет никакого графа объектов, а есть вложенная разметкаА MongoDB то тут при чём? JSON строка - это просто строка, однако её можно преобразовать к графу объектов. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:18 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAУверен, так что завязывай троллить, глупо. ТС чёрными русскими буквами писал, что рабочий проект сдан давно, он чисто для себя балуется с EF: 16746956 . Видимо из-за этого кстати и вопросы дополнительные не задаёт, занялся чем другим по работе. Дурака-то не включай. Если он балуется, чтобы затем бросить, значит вообще плевать что ему тут советуют. Если он сейчас балуется, чтобы затем применять по назначению, значит надо сразу закладывать правильный фундамент. Include -- зло, и не должно применяться на практике. Почему, я уже объяснил. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:19 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVostt, часто "целые" объекты нужны, особенно если есть ограничения, которые невозможно описать контсрейнтами СКЛ в СУБД потому и инклюд и лейзи должны быть вынесены за скобки и быть обусловленными от OCL модели просто у ЕФ нет модели, потому и такие ляпы (ЕФ просто не знает где закончится граф, потому не может оценить реультат и включить лейзи автоматом, да и контрейнты он не анализирует нифига) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:20 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANA, а монго преобразовывает? вот мамс преобразовывала в 80 году ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:21 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ViPRoshVostt, часто "целые" объекты нужны, особенно если есть ограничения, которые невозможно описать контсрейнтами СКЛ в СУБД потому и инклюд и лейзи должны быть вынесены за скобки и быть обусловленными от OCL модели просто у ЕФ нет модели, потому и такие ляпы (ЕФ просто не знает где закончится граф, потому не может оценить реультат и включить лейзи автоматом, да и контрейнты он не анализирует нифига) Я не думаю, что ЕФ задумывался настолько топ-левел. Это прослойка между реляционной БД и кодом. Не более того. Вроде как планируется туда включить ещё и NoSQL. Хз конечно, что получится. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:23 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVostt, ок ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:25 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttViPRosskyANA, "жадная" в математике определено, потому скорее это "полная" воще то я считаю что ОРМ только и нужен для того что бы одним махом загрузить объект или его проекции при этом хорошо бы иметь и лейзи получается что в ЕФ нет ни того, ни другого :( Всё встаёт на свои места, когда понимаешь, что навигационные свойства ≠ вложенные объекты. Странно, почему этот факт многие игнорируют?Потому как не все при проектировании доменной модели пользуются терминологией EF :) Если я запрашиваю данные туриста у сервиса поставщика, то ожидаю увидеть заполненными все свойства, а не предложение дёрнуть ещё пару методов сервиса, так как ну это же на самом деле навигационные свойства, у нас в базе они по разным таблицам раскиданы. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:30 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANA, значит надо договориться с сервисом ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:31 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAВот нужно будет тебе 100 карточек через Web API отдать наружу, ты получается 200 запросов к БД вместо 100 будешь посылать даже если чётко представляешь, что "жадная загрузка" не представляет из себя избыточный SELECT? Почему? Зная, что Person внутри Cart, это навигационное свойство , а не вложенный объект ? Ты пытаешься это знание скрыть. А если таких свойств 20? А у них еще по 10? Покажи-ка мне какая получится инструкция с Include().Include().Include().Include().Include().Include() ?Давай остановимся на случае, когда свойство одно. Совершенно не редкий случай. hVosttskyANAНу и опять какие-то левые слова пошли :) Что такое чертежи? У тебя банальные проблемы с метафорами. Макконнелла почитай. А, вот оно что. Ты считаешь что классно и понятно объясняешь всё метафорически. Заблуждаешься :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:36 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAПотому как не все при проектировании доменной модели пользуются терминологией EF :) Если я запрашиваю данные туриста у сервиса поставщика, то ожидаю увидеть заполненными все свойства, а не предложение дёрнуть ещё пару методов сервиса, так как ну это же на самом деле навигационные свойства, у нас в базе они по разным таблицам раскиданы. Да что ты говоришь? Какой наивно-оптимистичный подход! Я бы даже сказал, достойный прыщавого юнца. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Т.е. дёрнув из базы всего один единственный Item, мы получим целую свалку данных, путешествуя по графу, от Catalog до Store, затем получая попутно все Catalogs и в каждом из них Items Хороший же запрос получится, что сказать ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:38 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ViPRosskyANA, значит надо договориться с сервисомО чём? С сервисами всё нормально, они там где надо "жадно" отдают. Там где не надо, предлагает воспользоваться соответсвующими методами. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:38 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAА, вот оно что. Ты считаешь что классно и понятно объясняешь всё метафорически. Заблуждаешься :) Просто ты не понимаешь метафор, это я уже уяснил. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:40 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAО чём? С сервисами всё нормально, они там где надо "жадно" отдают. Там где не надо, предлагает воспользоваться соответсвующими методами. Что это значит «там где надо»? Т.е. всё-таки договориться? Ахахах... Удивляешь всё больше и больше. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:40 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAПотому как не все при проектировании доменной модели пользуются терминологией EF :) Если я запрашиваю данные туриста у сервиса поставщика, то ожидаю увидеть заполненными все свойства, а не предложение дёрнуть ещё пару методов сервиса, так как ну это же на самом деле навигационные свойства, у нас в базе они по разным таблицам раскиданы. Да что ты говоришь? Какой наивно-оптимистичный подход! Я бы даже сказал, достойный прыщавого юнца. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Т.е. дёрнув из базы всего один единственный Item, мы получим целую свалку данных, путешествуя по графу, от Catalog до Store, затем получая попутно все Catalogs и в каждом из них Items Хороший же запрос получится, что сказать Ну вот опять глупый троллинг. Я же писал, что нужно понимать, где можно и нужно "жадно", а где "лениво": 16817259 . Зачем ты выдумываешь то, чего я бы не сделал? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:42 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAViPRosskyANA, значит надо договориться с сервисомО чём? о схемах :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:44 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ViPRosskyANAпропущено... О чём? о схемах :)Ну обычно в документации пишут, где "жадно", а где надо отдельно допрашивать данные :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:45 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANA, без обид такое впечатление, что ты что то вызубрил и точно знаешь, но не мыслишь ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:46 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAНу вот опять глупый троллинг. Я же писал, что нужно понимать, где можно и нужно "жадно", а где "лениво": 16817259 . Зачем ты выдумываешь то, чего я бы не сделал? И как это понимать, указывать Include? Вот у сервиса требуют объект Cart, откуда сервис знает, включать ли туда Person и чего-то ещё, или нет? Понимаешь, что этот бардак будет только разрастаться. Предлагаешь делать так: GetCartWithPerson(id) GetCartWithPersonAndContacts(id) GetCartWithContactsOnly(id) ? Или построить для этих целей «красивый» Object Query? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:46 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAНу обычно в документации пишут, где "жадно", а где надо отдельно допрашивать данные :) Есть же любители намерянно всё усложнять и делать через зад. Выбирают себе зачем-то профессию разработки ПО вместо проктолога. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:48 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVostt, в ВИПРОС пишем LoadAndFillMacroType("Контракт"); ( public void LoadAndFillMacroType(string macrotypename, Guid contextid, bool viewmode = false) public void LoadAndFillMacroType(string macrotypename, bool viewmode = false) ) А Контракт громадный граф ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:52 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAО чём? С сервисами всё нормально, они там где надо "жадно" отдают. Там где не надо, предлагает воспользоваться соответсвующими методами. Что это значит «там где надо»? Т.е. всё-таки договориться? Ахахах... Удивляешь всё больше и больше.Ну что тебе не понятно? Например Джошуа Кириевски предпочитает изначально загружать всё eager, а потом по мере необходимости добавлять в нужных местах lazy. Или другой пример. Отдаём мобильному приложению список счетов пользователя вместе с валютой каждого счёта, хоть валюты и лежат в отдельной таблице-справочнике. А вот операции по счёту естесвенно отдаём отдельным запросом с параметрами (id счёта, период выписки), а не посылаем вместе со счётом все 100500 и фильтруйте там как хотите. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:53 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ViPRosskyANA, без обид такое впечатление, что ты что то вызубрил и точно знаешь, но не мыслишьобъясни ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:54 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANA, ну местами ты очень толково и по делу (это когда ты точно знаешь о чем речь), а иногда (как сейчас) такое впечатление, что ты не можешь разрешить некоторые неопределенности, додумывать, процемировать, найти аналогию и т.д. это все без обид, пожалуйста ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:55 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANA, Джошу Кириевский - тупой баран, если он чего то там "предпочитает" ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:56 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
предпочитают худых полным и т.д., а задачи решают рационально ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:57 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAНу вот опять глупый троллинг. Я же писал, что нужно понимать, где можно и нужно "жадно", а где "лениво": 16817259 . Зачем ты выдумываешь то, чего я бы не сделал? И как это понимать, указывать Include? Вот у сервиса требуют объект Cart, откуда сервис знает, включать ли туда Person и чего-то ещё, или нет? Понимаешь, что этот бардак будет только разрастаться. Предлагаешь делать так: GetCartWithPerson(id) GetCartWithPersonAndContacts(id) GetCartWithContactsOnly(id) ? Или построить для этих целей «красивый» Object Query? Ну первый вариант - говно. А если "Object Query", то о каком сервисе речь? OData, SOAP? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 01:59 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAНу обычно в документации пишут, где "жадно", а где надо отдельно допрашивать данные :) Есть же любители намерянно всё усложнять и делать через зад. Выбирают себе зачем-то профессию разработки ПО вместо проктолога. А толком объяснить можешь, что не так? Или это такая удобаная позиция: сказать "ваша музыка говно, потому что она говно", и если кто-то ничего не понял, то у него банальные проблемы с метафорами? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 02:01 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ViPRosв ВИПРОС пишем LoadAndFillMacroType("Контракт"); ( public void LoadAndFillMacroType(string macrotypename, Guid contextid, bool viewmode = false) public void LoadAndFillMacroType(string macrotypename, bool viewmode = false) ) А Контракт громадный граф Используем строго типизированные проекции. Никогда не надо догадываться, делать предопложения, шнырять по документации, чтобы понять что же у объекта внутри, а что надо дозагружать. Берём нужную проекцию, в ней определённо точно всё загруженно, без всяких домыслов. Работать с проекцией крайне просто, работает в 2 стороны с прозрачным маппингом, в том числе фильтры на проекции, проецируются на объекты. Поэтому не вижу никаких проблем, и зависимости от EF. Был опыт «переезда» с EF на NHibernate и наоборот, при чём слой бизнес-логики оказывался нетронут. Я считаю это профит, хотя может глубоко заблуждаюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 02:02 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ViPRosskyANA, ну местами ты очень толково и по делу (это когда ты точно знаешь о чем речь), а иногда (как сейчас) такое впечатление, что ты не можешь разрешить некоторые неопределенности, додумывать, процемировать, найти аналогию и т.д. это все без обид, пожалуйстакак сейчас - это о чём конкретно? может просто я не понятно выражаюсь? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 02:03 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAА толком объяснить можешь, что не так? Или это такая удобаная позиция: сказать "ваша музыка говно, потому что она говно", и если кто-то ничего не понял, то у него банальные проблемы с метафорами? Что не так, говоришь? Ты же сам сказал, что не понял метафоры, только изъяснился таким образом, что это типа метафоры такие плохие. Это похоже на еврейский способ попросить об одолжении в форме шантажа. Упс. Забыл, ты же не понимаешь метафоры, прости-прости ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 02:05 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ViPRosпредпочитают худых полным и т.д., а задачи решают рациональнои что же иррационального в том, чтобы сначала сделать полную загрузку, а потом там где надо ленивую? мне иногда кажется, что ты на всё смотришь, через призму ВИПРОСА своего. сразу себе рисуешь громадный граф. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 02:06 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAА толком объяснить можешь, что не так? Или это такая удобаная позиция: сказать "ваша музыка говно, потому что она говно", и если кто-то ничего не понял, то у него банальные проблемы с метафорами? Что не так, говоришь? Ты же сам сказал, что не понял метафоры, только изъяснился таким образом, что это типа метафоры такие плохие. Это похоже на еврейский способ попросить об одолжении в форме шантажа. Упс. Забыл, ты же не понимаешь метафоры, прости-прости Ты ушёл от вопроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 02:07 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAНу первый вариант - говно. А если "Object Query", то о каком сервисе речь? OData, SOAP? давай: и то и другое, а ещё и кастомный REST и MVC? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 02:08 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANA, "как сейчас" - имелось ввиду "дискуссия наша за день в двух топиках" :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 02:08 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAViPRosпредпочитают худых полным и т.д., а задачи решают рациональнои что же иррационального в том, чтобы сначала сделать полную загрузку, а потом там где надо ленивую? мне иногда кажется, что ты на всё смотришь, через призму ВИПРОСА своего. сразу себе рисуешь громадный граф. да нет я же тебе сказал что у меня мало комплексов ну просто полная загрузка допусти "Расписания работ завода за неделю" просто ни в какие ворота не влезет ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 02:09 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAНу что тебе не понятно? Например Джошуа Кириевски предпочитает изначально загружать всё eager, а потом по мере необходимости добавлять в нужных местах lazy. Или другой пример. Отдаём мобильному приложению список счетов пользователя вместе с валютой каждого счёта, хоть валюты и лежат в отдельной таблице-справочнике. А вот операции по счёту естесвенно отдаём отдельным запросом с параметрами (id счёта, период выписки), а не посылаем вместе со счётом все 100500 и фильтруйте там как хотите. Для списка счётов одна проекция, для операции по счёту другая. И не надо тут вкорячивать предположения, для подтверждения которых надо лезть в доку. Всё, что есть в проекции -- будет загружено. Зачем тебе эта задница из условий если/если/если...? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 02:10 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ViPRosskyANA, "как сейчас" - имелось ввиду "дискуссия наша за день в двух топиках" :)Ты можешь указать, где конкретно у меня неопределённости? Мне полезно это знать. Или это очередной способ поддеть? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 02:11 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAНапример Джошуа Кириевски предпочитает изначально загружать всё eager, а потом по мере необходимости добавлять в нужных местах lazy. Женоподобный му**к. Если сегодня полная луна, буду грузить lazy, а если по радио будут крутить Елвиса, то всё eager ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 02:12 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANA, * это к Джошуа Кириевски ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 02:12 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANA, не у тебя "неопределенность", а у других (так как нельзя очень точно описать проблему или высказаться по поводу общепринятых вещей на форуме) другие как то быстро ловят контекст и дополняют из своего опыта (вот как с хвостом мы сейчас говорили о пробемах еф (возможно мнимых)), он ни разу не спрросил меня - что такое "вывести лейзи за скобки", подозреваю - ты бы спросил это обычно зависит от - национальность (ментальность) опыт способность обобщать и классифифцировать ( у нас это называется ООП) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 02:15 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAНу что тебе не понятно? Например Джошуа Кириевски предпочитает изначально загружать всё eager, а потом по мере необходимости добавлять в нужных местах lazy. Или другой пример. Отдаём мобильному приложению список счетов пользователя вместе с валютой каждого счёта, хоть валюты и лежат в отдельной таблице-справочнике. А вот операции по счёту естесвенно отдаём отдельным запросом с параметрами (id счёта, период выписки), а не посылаем вместе со счётом все 100500 и фильтруйте там как хотите. Для списка счётов одна проекция, для операции по счёту другая. И не надо тут вкорячивать предположения, для подтверждения которых надо лезть в доку. Всё, что есть в проекции -- будет загружено. Зачем тебе эта задница из условий если/если/если...?В чём конкретно задница? Допустим с сервисом не только мобильное приложение работает, но и 1С интегрируется, будешь как выше предложил по три метода писать с разными проекциями? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 02:17 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ViPRosskyANA, не у тебя "неопределенность", а у других (так как нельзя очень точно описать проблему или высказаться по поводу общепринятых вещей на форуме) другие как то быстро ловят контекст и дополняют из своего опыта (вот как с хвостом мы сейчас говорили о пробемах еф (возможно мнимых)), он ни разу не спрросил меня - что такое "вывести лейзи за скобки", подозреваю - ты бы спросил это обычно зависит от - национальность (ментальность) опыт способность обобщать и классифифцировать ( у нас это называется ООП)Расстрою тебя, я тоже понял, что такое "вывести лейзи за скобки". Я не только с MongoDB работаю, и реляционными СУБД тоже, и лейзи использую. Где-то даже сам его и написал. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 02:21 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANA, ну я ж не сказал что совсем безнадежен (а то бы воще не разговаривал), может я и ошибаюсь, иногда даже настроение мешает понять другого ладно, проехали ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 02:23 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ViPRosskyANA, ну я ж не сказал что совсем безнадежен (а то бы воще не разговаривал), может я и ошибаюсь, иногда даже настроение мешает понять другого ладно, проехалиУ вас с Хвостом походу одна национальность. Вы оба ни фига конкретно сказать не можете с первого раза. Метафоры да намёки вокруг да около :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 02:27 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAВ чём конкретно задница? Допустим с сервисом не только мобильное приложение работает, но и 1С интегрируется, будешь как выше предложил по три метода писать с разными проекциями? Я буду писать разные проекции под разные нужды. Строгая типизированность, абсолютно полная определённость -- не надо ни с кем «договариваться» и описывать в документации на тему что же всё таки будет загружено и когда. Все проекции прекрасно работают поддерживают все IQueryable возможности, значит фильтры и сортировки также прекрасно проецируются. И это будет не 3 метода, а 3 проекции. Метод останется как раз один. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 02:27 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
И оба выдумываете за человека то, что ему самому и в голову бы никогда не пришло. Видимо это следствие вашей предвзятости. P.S.: понимаю теперь МСУ. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 02:29 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAМетафоры да намёки вокруг да около :) Почитай ты уже Макконнелла «Совершенный код», треть книги посвящена важности метафор для разработки ПО. Конечно, бывают неудачные метафоры, и ни одна метафора не может описывать ситуацию полностью. Но у тебя с ними проблемы, на сколько я понимаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 02:30 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAВ чём конкретно задница? Допустим с сервисом не только мобильное приложение работает, но и 1С интегрируется, будешь как выше предложил по три метода писать с разными проекциями? Я буду писать разные проекции под разные нужды. Строгая типизированность, абсолютно полная определённость -- не надо ни с кем «договариваться» и описывать в документации на тему что же всё таки будет загружено и когда. Все проекции прекрасно работают поддерживают все IQueryable возможности, значит фильтры и сортировки также прекрасно проецируются. И это будет не 3 метода, а 3 проекции. Метод останется как раз один.Ты хотя бы один Public API уже реализовал? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 02:31 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAИ оба выдумываете за человека то, что ему самому и в голову бы никогда не пришло. Видимо это следствие вашей предвзятости. P.S.: понимаю теперь МСУ. Ого. Да ты подслил малёха? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 02:31 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAТы хотя бы один Public API уже реализовал? Естественно ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 02:31 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAМетафоры да намёки вокруг да около :) Почитай ты уже Макконнелла «Совершенный код», треть книги посвящена важности метафор для разработки ПО. Конечно, бывают неудачные метафоры, и ни одна метафора не может описывать ситуацию полностью. Но у тебя с ними проблемы, на сколько я понимаю. Ну допустим. Но проблемы тут нет. Когда мне что-то не понятно, я уточняю. А вот когда человек, видя, что оппонент не понял, уточняет, продолжает изъясняться намёками да метафорами, при этом ещё и троллит, то это проблема. Думаю Макконнелл не в таком ключе предлагает метафоры пользовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 02:36 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAИ оба выдумываете за человека то, что ему самому и в голову бы никогда не пришло. Видимо это следствие вашей предвзятости. P.S.: понимаю теперь МСУ. Ого. Да ты подслил малёха? Пффф... Бугага, трололо, гыгыгы, подслил, подслил... Побольше смайликов Не подслил, но от твоей манеры общения устал немного. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 02:38 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAТы хотя бы один Public API уже реализовал? Естественно Дай ссылку? Что там, OData? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 02:40 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
И ответь на такой вопрос: Public API он предназначен для широкого круга партнёров, клиентов. Кто-то хочет интегрироваться, кто-то отчётики какие-то свои строить, кто приложение мобильное прикрутить, кто виджетов на сайт себе наклепать, или на рабочий стол. Ты пишешь: "Я буду писать разные проекции под разные нужды". Как это выглядит, как ты заранее можешь угадать нужды? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 02:49 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Только не надо отвечать, что OData, гыгыгы, там есть $select. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 02:53 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAИ ответь на такой вопрос: Public API он предназначен для широкого круга партнёров, клиентов. Кто-то хочет интегрироваться, кто-то отчётики какие-то свои строить, кто приложение мобильное прикрутить, кто виджетов на сайт себе наклепать, или на рабочий стол. Ты пишешь: "Я буду писать разные проекции под разные нужды". Как это выглядит, как ты заранее можешь угадать нужды? Ты сейчас о чём вообще, я не понял? Почему я должен что-то там «угадывать»? Это что за подход такой к разработке? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 04:44 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAНе подслил, но от твоей манеры общения устал немного. Трудности с перевариванием метафор? Понимаю ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 04:47 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAИ ответь на такой вопрос: Public API он предназначен для широкого круга партнёров, клиентов. Кто-то хочет интегрироваться, кто-то отчётики какие-то свои строить, кто приложение мобильное прикрутить, кто виджетов на сайт себе наклепать, или на рабочий стол. Ты пишешь: "Я буду писать разные проекции под разные нужды". Как это выглядит, как ты заранее можешь угадать нужды? Ты сейчас о чём вообще, я не понял? Почему я должен что-то там «угадывать»? Это что за подход такой к разработке?О Public API. Видимо мы по разному понимаем, что это такое. Что он у вас из себя представляет и для каких целей реализован? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 10:39 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAО Public API. Видимо мы по разному понимаем, что это такое. Что он у вас из себя представляет и для каких целей реализован? У кого это «у нас»??? У нас нет своего личного проекта, который мы пицот тыщ лет пилим! И не будет никогда. Что ж ты на всё через призму исключительно своей компании смотришь? Когда заказчику требуется PAPI, мы его делаем. Сразу всё чётко оговаривается, для каких целей он нужен, какие задачи будет решать, и как их решать. Это ты там экстрасенсом подрабатываешь и пытаешься что-то «угадывать». Из проектов, рассчитанных на широкую аудиторию, есть http://joxi.ru -- наша разработка, но PAPI там пока не планируется. Закажут? Будем делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 13:12 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAО Public API. Видимо мы по разному понимаем, что это такое. Что он у вас из себя представляет и для каких целей реализован? У кого это «у нас»??? У нас нет своего личного проекта, который мы пицот тыщ лет пилим! И не будет никогда. Что ж ты на всё через призму исключительно своей компании смотришь? Когда заказчику требуется PAPI, мы его делаем. Сразу всё чётко оговаривается, для каких целей он нужен, какие задачи будет решать, и как их решать. Это ты там экстрасенсом подрабатываешь и пытаешься что-то «угадывать». Из проектов, рассчитанных на широкую аудиторию, есть http://joxi.ru -- наша разработка, но PAPI там пока не планируется. Закажут? Будем делать.Я смотрю не через призму исключительно своей компании. Я смотрю через призму публичных сервисов, которых в интернете полно. У нас только десяток прямых конкурентов. А за рамками нашей ниши тьма сервисов: игровые, поисковые, онлайн бронирования, биржевые и т.д., и т.п. Ты же не будешь отрицать, что Wild Apricot - это не единственное в мире SaaS решение. А термин Public API не мы придумали. И, кстати, ничего мы не угадываем. Пользователи пишут свои пожелания, мы их собираем, анализируем и реализуем требуемый функционал. Просто когда у тебя 15000 активных клиентов разной величины (у одной ассоциации 8 контактов, а у другой 8000), то требования к Public API получаются совершенно разнообразные. Кому-то свои 8 контактов хочется показать в виде красивого виджета на сайте: смотрите какие классные у нас перцы. Фотка, имя, должность, некий текстовый description (всего-то ничего полей). А кому-то свою аналитику хочется прикрутить, где чуть-ли не все поля задействовать. И похожая ситуация наверняка и в других публичных сервисах по всему миру. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 14:04 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAЯ смотрю не через призму исключительно своей компании. Я смотрю через призму публичных сервисов, которых в интернете полно. У нас только десяток прямых конкурентов. А за рамками нашей ниши тьма сервисов: игровые, поисковые, онлайн бронирования, биржевые и т.д., и т.п. Ты же не будешь отрицать, что Wild Apricot - это не единственное в мире SaaS решение. А термин Public API не мы придумали. У вас один единственный продукт. Один! Будут ли пользователи платить за него -- это вопрос выживания вашей компании. Соответственно, вы находитесь перманентно в состоянии бесконечной разработки. У вас не существует конечного релиза. Или вы сделаете настолько идеальный и дешёвый сервис, чтобы ни один конкурент в ближайшие десятилетия вас не переплюнул. Тогда вы всей командой разработки дружно отправитесь на пенсию, ибо ваши услуги будут более не нужны. Но такого, конечно, не случится. У нас продуктов выпускается много. Совершенно разных. И больших, и маленьких. Мы не делаем SaaS, ибо такие вещи обычно разрабатываются внутри компании-владельца, а не на аутсорсе. Но если мы получим такой проект, будем делать. Надо будет развивать PAPI, будем развивать. skyANAИ, кстати, ничего мы не угадываем. Пользователи пишут свои пожелания, мы их собираем, анализируем и реализуем требуемый функционал. Просто когда у тебя 15000 активных клиентов разной величины (у одной ассоциации 8 контактов, а у другой 8000), то требования к Public API получаются совершенно разнообразные. Тоже самое: http://joxi.userecho.com/topic/528696-byilo-byi-zdorovo-poluchit-dostup-k-api/ Только с небольшим отличием. Это пользователи заказчика , а не наши. И как видишь, заказчик пока не планирует тратить средства на разработку PAPI. skyANAКому-то свои 8 контактов хочется показать в виде красивого виджета на сайте: смотрите какие классные у нас перцы. Фотка, имя, должность, некий текстовый description (всего-то ничего полей). А кому-то свою аналитику хочется прикрутить, где чуть-ли не все поля задействовать. И похожая ситуация наверняка и в других публичных сервисах по всему миру. Да это всё понятно. Но погляди на PAPI фконтакта или фейспука. Сложные? Отнюдь, простейшие как бревно. Однако удовлетворяют миллионы пользователей. Так что не надо чесать про то, как же тяжело PAPI разрабатывать, типа это магия доступная лишь горстке избранных на всей земле. Поступают требования, мы выполняем. Я просто не понимаю, ты у себя в компании и жрец, и жнец и на дуде игрец? Чем вообще ты занимаешься? Ты реализуешь PAPI или проектируешь его? Или полностью на фидбеке с пользователями и группой стратегического планирования? И ещё гоняешь на хайлоад и оптимизируешь сервера, собираешь аналитегу, и пилишь Object Query... Не слишком ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 14:55 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVostt, ты делаешь не верные выводы, не по теме вопроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 15:22 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAhVostt, ты делаешь не верные выводы, не по теме вопроса. Возможно. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 15:34 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
С телефона писал, был краток :) hVosttне надо чесать про то, как же тяжело PAPI разрабатывать, типа это магия доступная лишь горстке избранных на всей земле.Вот это твои фантазии не понятно на какой почве. Я ничего такого не "чесал" :) hVosttЯ просто не понимаю, ты у себя в компании и жрец, и жнец и на дуде игрец? Чем вообще ты занимаешься? Ты реализуешь PAPI или проектируешь его? Или полностью на фидбеке с пользователями и группой стратегического планирования? И ещё гоняешь на хайлоад и оптимизируешь сервера, собираешь аналитегу, и пилишь Object Query... Не слишком ли?В данный момент я разрабатываю архитектуру нового прайсинга для Абрикоса (проект: "Launch new pricing"). Public API у нас до недавнего времени писал ровно один разработчик. Я проводил Code Review. "пилишь Object Query" - это относится к личным проектам, что я веду в свободное от Абрикоса время. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 16:15 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAВот это твои фантазии не понятно на какой почве. Я ничего такого не "чесал" :) А, ну ошибся значит skyANAВ данный момент я разрабатываю архитектуру нового прайсинга для Абрикоса (проект: "Launch new pricing"). Public API у нас до недавнего времени писал ровно один разработчик. Я проводил Code Review. "пилишь Object Query" - это относится к личным проектам, что я веду в свободное от Абрикоса время. Ну дак PAPI у вас решает определённый круг задач всё же. Может большой, но определённый. Мне же представилось, что ты говоришь про некий волшебный резиновый PAPI, который подойдёт абсолютно УСЕМ. Как у Б. Гейтса, волшебные 640 кб Всё равно есть определённые сценарии и цели, из которых необходимо исходить. А то прибегает менеджер с глазами в два блюдца и орёт, что вы всё напортачили, всё надо срочно переписать, так как с холодильника и кофемолки пользоваться вашим творением абсолютно невозможно! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 16:34 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttНу дак PAPI у вас решает определённый круг задач всё же. Может большой, но определённый. Мне же представилось, что ты говоришь про некий волшебный резиновый PAPI, который подойдёт абсолютно УСЕМ. Как у Б. Гейтса, волшебные 640 кб Всё равно есть определённые сценарии и цели, из которых необходимо исходить. А то прибегает менеджер с глазами в два блюдца и орёт, что вы всё напортачили, всё надо срочно переписать, так как с холодильника и кофемолки пользоваться вашим творением абсолютно невозможно! Ну да, сценарии использования одного и того же метода API разные, но число их конечное. Я просто хотел уточнить тот момент, что какие тут могут быть проекции? Ты просто преподносишь их как некий универсальный механизм. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 16:43 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANA, проекция и есть универсальный механизм - еще называется "специализация" смотри сколько проекций у одного базового понятия чем это хорошо? аналитик строит модель, а прогер нафиг не нужен ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 16:52 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ViPRos, ты хотел сказать спецификация? $filter != $select :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 17:52 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
criteria != projection ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 17:56 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ViPRos, фишка в том, что hVostt-то как раз решил "писать разные проекции под разные нужды" ( 16817619 ). То есть обсудить с заказчиком конкретное число сценариев и под них реализовать конкретное число проекций. Тогда как Випрос и Абрикос позволяют пользователю, в лице аналитика или клиента, самому задать требуемые условия (спецификацию) и состав возвращаемых данных (проекцию). ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 18:07 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAсостав структуру возвращаемых данных (проекцию).поправил ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 18:08 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANA, ну не в словах дело просто есть принятые слова - обобщение, специализация, морфизмы и эти слова относятся не только к поведению, но структуре в ВИПРОС что то наподобие структурного ООП методы олучения специализации могут быть разными, могу наложиться структурные фильтры, фильтры на значения, фильтры на методы и события, на визуализацию и т.д., + добавление структурные, поведенческие (это как в прототипировании) назови как хошь ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 18:47 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
просто не надо для всего этого писать код (кроме собственного поведения) - вот в чем отличие ВИПРОС от других ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 18:48 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ViPRos, ну классно. А что в ВИПРОСе выбрано в качестве ключа шардинга? Какая функция, правило определяет соответсвие сервера ключу? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 19:22 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAЯ просто хотел уточнить тот момент, что какие тут могут быть проекции? Ты просто преподносишь их как некий универсальный механизм. Именно, я преподношу их как универсальный механизм -- для чего? Отвечаю -- для выбора нужного среза данных. Что такое проекция? Это POCO объект с нужным набором полей, может включать в себя поля из одной или нескольких ORM Entity, целые объекты, вычисляемые поля и аггрегации. Механизм универсален потому, что IQueryable запрос на проекцию прозрачно транслируется в IQueryable для ORM, значит с ними можно работать как с полноценными Entity. Проекции хороши тем, что полностью убирают любые вопросы с eager/lazy loading, так как берут одним запросом 100% по факту всё, что указано в проекции. И не надо ничего нигде описывать. Проекции хороши тем, что проекций может быть сколько угодно много, а метод для получения данных -- всего один для каждого корня. Проекции не зависят от реализации репозитория -- за бортом может быть что угодно: EF, NHibernate, или что-то ещё, если они реализуют честный IQueryable провайдер. Проекции замечательно работают с OData, и в принципе с чем угодно. Это не фанатение и не любовь, а банальная практичность. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 19:41 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAЯ просто хотел уточнить тот момент, что какие тут могут быть проекции? Ты просто преподносишь их как некий универсальный механизм. Именно, я преподношу их как универсальный механизм -- для чего? Отвечаю -- для выбора нужного среза данных. Что такое проекция? Это POCO объект с нужным набором полей, может включать в себя поля из одной или нескольких ORM Entity, целые объекты, вычисляемые поля и аггрегации. Механизм универсален потому, что IQueryable запрос на проекцию прозрачно транслируется в IQueryable для ORM, значит с ними можно работать как с полноценными Entity. Проекции хороши тем, что полностью убирают любые вопросы с eager/lazy loading, так как берут одним запросом 100% по факту всё, что указано в проекции. И не надо ничего нигде описывать. Проекции хороши тем, что проекций может быть сколько угодно много, а метод для получения данных -- всего один для каждого корня. Проекции не зависят от реализации репозитория -- за бортом может быть что угодно: EF, NHibernate, или что-то ещё, если они реализуют честный IQueryable провайдер. Проекции замечательно работают с OData, и в принципе с чем угодно. Это не фанатение и не любовь, а банальная практичность.Это всё понятно. На практике у тебя как это выглядит? Метод сервиса (контроллера) возвращает IQueryable? Или как? Я так понял, ты пишешь пяток конкретных методов, которые принимают ограниченный набор параметров, ты их пихаешь в Where, в Select-е обозначаешь проекцию, соответсвующую логике того, что это за метод и вуаля. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 19:54 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVostt, и тебе ведь не сложно будет показать код решения задачи ТС с проекциями? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 20:05 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAЭто всё понятно. На практике у тебя как это выглядит? Метод сервиса (контроллера) возвращает IQueryable? Или как? Я так понял, ты пишешь пяток конкретных методов, которые принимают ограниченный набор параметров, ты их пихаешь в Where, в Select-е обозначаешь проекцию, соответсвующую логике того, что это за метод и вуаля. Очень грубый пример, метод интерфейса: Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
Конечно в реале это является частью механизма Object Query, туда же все параметры летят, и через интеленс получаем список доступных проекций. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 20:18 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAViPRos, ну классно. А что в ВИПРОСе выбрано в качестве ключа шардинга? Какая функция, правило определяет соответсвие сервера ключу? нет у меня пока масштабируемости такой на уровне приложения я воще то думал, что всякие датацентры сами умеют это без приложения ну если не умеют, то придтся написать сервис сопоставления (а ключ у меня ГУИД) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 20:19 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
как нить надо над этим поработать ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 20:20 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAhVostt, и тебе ведь не сложно будет показать код решения задачи ТС с проекциями? В самом простейшем случае: Код: c# 1.
Нетипизированная проекция. Это суть. Что-то большее давать без определнённой задачи -- глупо. А «хочу чтобы в Cart сразу был Person», извини меня -- не является задачей. Хоть убей. Непонятно чего в итоге хочет ТС и зачем, а я экстрасенсом не собираюсь работать. Всякие советы типа «используй Include», кроме того, что они плохи, они не призваны помочь ТС, а даны чисто на от....ись. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 20:22 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVostt, ну это все надо кодировать а в ВИПРОС - склонировал макротип, поменял пару полей, наложил какой нить фильтр и все ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 20:23 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAЭто всё понятно. На практике у тебя как это выглядит? Метод сервиса (контроллера) возвращает IQueryable? Или как? Я так понял, ты пишешь пяток конкретных методов, которые принимают ограниченный набор параметров, ты их пихаешь в Where, в Select-е обозначаешь проекцию, соответсвующую логике того, что это за метод и вуаля. Очень грубый пример, метод интерфейса : Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
Не понял, что такое такое интерфейс в данном случае. Service - это класс бизнес-логики, или это gateway к сервису? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 20:24 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ViPRoshVostt, ну это все надо кодировать а в ВИПРОС - склонировал макротип, поменял пару полей, наложил какой нить фильтр и все В любом случае надо кодировать. Чуть больше затрат на написание проекций, окупается затем тысячу раз сторицей. Макротипы со строковыми ключами? Увольте. Строгая типизированность и интеллисенс -- не собираюсь от этого отказываться Тем более проекции, являясь по сути обычными классами, также могут наследоваться, и вообще они очень хорошо кастомизируются. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 20:26 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAНе понял, что такое такое интерфейс в данном случае. Service - это класс бизнес-логики, или это gateway к сервису? А чего ещё? Класс бизнес-логики в данном случае. Как видишь, никакой зависимости от EF. Сервис в свою очередь работает с репой, и тоже без всякой зависимости от EF. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 20:28 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ViPRos, И ещё, ORM Entity также могут выступать в роли проекции, в отдельных случаях можно делать так: Код: c# 1.
Получим Item со всеми потрохами (этакий bulk Include получается по сути) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 20:30 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAhVostt, и тебе ведь не сложно будет показать код решения задачи ТС с проекциями? В самом простейшем случае: Код: c# 1.
И EF интерпертирует это выражение в JOIN двух таблиц? Нетипизированная проекция. Это суть. Что-то большее давать без определнённой задачи -- глупо. А «хочу чтобы в Cart сразу был Person», извини меня -- не является задачей.Хм, ну а если нам надо получить Card для выполнения каких-либо действий над ней, для бизнес-логики? Не с анонимным же типом работать и не с типизированным DTO. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 20:30 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVostt, я мог бы сгенерировать полный набор "классов" но не увидел выгоду сейчас какой нить прикладной выхлоп ВИПРОС расширяется и клиентом и поставщиком ВИПРОС на автомате сливает изменения клиента и поставщика, при этом не надо ниче компилировать, переслать, установить и т.д. а с кодом были бы проблемы ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 20:30 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAНе понял, что такое такое интерфейс в данном случае. Service.GetAll() ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 20:31 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVostt Код: c# 1.
И EF интерпертирует это выражение в JOIN двух таблиц? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 20:31 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ViPRoshVostt, я мог бы сгенерировать полный набор "классов" но не увидел выгоду сейчас какой нить прикладной выхлоп ВИПРОС расширяется и клиентом и поставщиком ВИПРОС на автомате сливает изменения клиента и поставщика, при этом не надо ниче компилировать, переслать, установить и т.д. а с кодом были бы проблемы Возможно. Но я ж всей ситуации не знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 20:32 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAhVostt Код: c# 1.
И EF интерпертирует это выражение в JOIN двух таблиц? Да. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 20:32 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAНе понял, что такое такое интерфейс в данном случае. Service.GetAll()Service - это репозиторий? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 20:33 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAХм, ну а если нам надо получить Card для выполнения каких-либо действий над ней, для бизнес-логики? Не с анонимным же типом работать и не с типизированным DTO. Есть два пути: проекции могут мапиться также и обратно в Entity. Или для изменяющих запросов, берутся Entity. Я предпочитаю для изменения работать исключительно с Entity, а проекции только для получения данных, для отображения или передачи наружу. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 20:34 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAService - это репозиторий? Нет, я же сказал, это сервисный класс бизнес-логики. Т.е. GetAll() это всё, что доступно текущему пользователю, а не всё вообще. В логика маппинга для проекции также в зоне ответственности бизнес-логики. Просто я упрощаю примеры. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 20:37 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAХм, ну а если нам надо получить Card для выполнения каких-либо действий над ней, для бизнес-логики? Не с анонимным же типом работать и не с типизированным DTO. Есть два пути: проекции могут мапиться также и обратно в Entity. Или для изменяющих запросов, берутся Entity. Я предпочитаю для изменения работать исключительно с Entity.Правильно-ли я понял, что для маппинга ты используешь AutoMapper? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 20:48 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAПравильно-ли я понял, что для маппинга ты используешь AutoMapper? Да, всё верно. До недавнего времени у проекций был существенный недостаток: в проекцию нельзя было передать параметры. Теперь всё в шоколаде, параметры можно передавать ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2014, 21:17 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAПравильно-ли я понял, что для маппинга ты используешь AutoMapper? Да, всё верно. До недавнего времени у проекций был существенный недостаток: в проекцию нельзя было передать параметры. Теперь всё в шоколаде, параметры можно передавать Ясно. .Project() и .To<>() - это методы расширения из библиотеки AutoMapper. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2014, 10:32 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAЯсно. .Project() и .To<>() - это методы расширения из библиотеки AutoMapper. Точно. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2014, 10:41 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVostt, погоди, то есть если "для изменяющих запросов, берутся Entity", то получается мы не просто выбираем данные, но ещё и пропускаем их через AutoMapper? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2014, 10:44 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
И они маппятся сами на себя? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2014, 10:44 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAhVostt, погоди, то есть если "для изменяющих запросов, берутся Entity", то получается мы не просто выбираем данные, но ещё и пропускаем их через AutoMapper? Нет, просто Entity берутся. Но можно изменять и проекции, они также мапятся в Entity обратно -- способ очень хорошо подходит для Angular-style разработки (но мне всё равно не нравится, теряется контроль). ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2014, 12:40 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAИ они маппятся сами на себя? Поясни плз, что ты имеешь сейчас в виду? Кто на кого мапится? Есть ORM Entity (EDM), а есть проекции (DTO). Для изменения берём Entity, для отображения/передачи DTO. Но можно работать только с DTO, на этом можно полностью построить архитектуру (когда напрямую с Entity больше никто не работает). ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2014, 12:43 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAИ они маппятся сами на себя? Поясни плз, что ты имеешь сейчас в виду? Кто на кого мапится? Есть ORM Entity (EDM), а есть проекции (DTO). Для изменения берём Entity, для отображения/передачи DTO. Но можно работать только с DTO, на этом можно полностью построить архитектуру (когда напрямую с Entity больше никто не работает).Код в случае с Entity как выглядит? Так: Код: c# 1.
? То есть AutoMapper отслеживает, что маппить не надо? А если есть полноценный DomainModel объект, не DTO, и не ORM Entity, то свой велосипед изобретать? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2014, 12:54 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAКод в случае с Entity как выглядит? Так: Код: c# 1.
? Зачем??? Просто берём Entity, без всякого AutoMapper-а. Тем более проекция Entity -> Entity приведёт к bulk include всех навигационных параметров. Это практически никогда не нужно (лично я с такой необходимостью даже не сталкивался). skyANAА если есть полноценный DomainModel объект, не DTO, и не ORM Entity, то свой велосипед изобретать? Как раз таки нет. DomainModel «объект» это и не объект вовсе. Это может быть целое состояние, с разными данными. И совсем не обязательно оно должно быть полностью загружено со всем потрохами. В ином случая, я бы не добавлял такую сущность (если по-твоему это и правда именно объект), ибо лишнее. Как тама говорил Оккама? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2014, 13:33 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAКод в случае с Entity как выглядит? Так: Код: c# 1.
? Зачем??? Просто берём Entity, без всякого AutoMapper-а. Тем более проекция Entity -> Entity приведёт к bulk include всех навигационных параметров. Это практически никогда не нужно (лично я с такой необходимостью даже не сталкивался).И как код будет выглядеть у тебя в этом случае? hVosttskyANAА если есть полноценный DomainModel объект, не DTO, и не ORM Entity, то свой велосипед изобретать? Как раз таки нет. DomainModel «объект» это и не объект вовсе. Это может быть целое состояние, с разными данными. И совсем не обязательно оно должно быть полностью загружено со всем потрохами. В ином случая, я бы не добавлял такую сущность (если по-твоему это и правда именно объект), ибо лишнее. Как тама говорил Оккама? Ну что значит "не объект вовсе". В домене определён некий тип (класс), экземпляр этого класса - есть объект. Объект имеет состояние и поведение. И это не по-моему, это ООП :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2014, 13:44 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAИ как код будет выглядеть у тебя в этом случае? Например, Get(id) skyANAНу что значит "не объект вовсе". В домене определён некий тип (класс), экземпляр этого класса - есть объект. Объект имеет состояние и поведение. И это не по-моему, это ООП :) Ну ладно, есть у тебя некий объект, и как он у тебя хранится? По кускам вразброс по базе? И чем это не отражение? Или у него есть ещё какие-то поля/данные, не имеющие прямого отношения к данным в хранилище? Я предпочитаю мыслить в контексте задачи, а сейчас о чём ты говоришь, я не понимаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2014, 14:28 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVostt, ну мы же рассматриваем некий универсальный, по-твоему мнению, механизм. Вот и хочется понять степень его универсальности :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2014, 14:36 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Ты же не будешь отрицать того, что в мире существует DDD. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2014, 14:37 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAhVostt, ну мы же рассматриваем некий универсальный, по-твоему мнению, механизм. Вот и хочется понять степень его универсальности :) Ты механизм предложенный мною для извлечения данных зачем экстраполируешь на DDD? Так мы скоро до UX доберёмся, а затем до маркетинга, затем до теории большого взрыва. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2014, 14:48 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttИменно, я преподношу их как универсальный механизм -- для чего? Отвечаю -- для выбора нужного среза данных. Что такое проекция? Это POCO объект с нужным набором полей, может включать в себя поля из одной или нескольких ORM Entity, целые объекты Эти проекции получается часть модели? Затем проекции мапятся во viewmodel? hVosttвычисляемые поля и аггрегации. Могут содержать логику? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2014, 14:48 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ПарамонhVosttИменно, я преподношу их как универсальный механизм -- для чего? Отвечаю -- для выбора нужного среза данных. Что такое проекция? Это POCO объект с нужным набором полей, может включать в себя поля из одной или нескольких ORM Entity, целые объекты Эти проекции получается часть модели? Затем проекции мапятся во viewmodel? hVosttвычисляемые поля и аггрегации. Могут содержать логику? Зависит от задачи. Как я уже неоднократно говорил, мы изготавливаем ПО различного уровня сложности, для самых различных применений. У нас нет одной единственной серебяной пилюли, одного универсального решения для всех задач. Делали CRM, у нас было несколько слоёв, с максимальным разделением ответственности. Делаем небольшую службу маленьким REST для периодического дёргания из вне -- зачем мы будем корячиться и убивать ресурсы на сложную ветвистую архитектуру? По вопросам skyANA упорно складывается ощущение, что он думает мы один единственный проект уже 10 лет пилим, как у них. И поэтому взаимопонимания не случается. Это прискорбно. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2014, 14:52 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttПо вопросам skyANA упорно складывается ощущение, что он думает мы один единственный проект уже 10 лет пилим, как у них. И поэтому взаимопонимания не случается. Это прискорбно.Зря ты так думаешь. Я не пилю Абрикос 10 лет, так как пришёл в компанию 10 января 2012 года. А общий стаж у меня 12 лет на разных проектах в разных предметных областях, начиная с должности стажёра в CBOSS в 2012-м. Также в свободное время я пилю свои проекты, вообще не похожие на Абрикос. А о вас я думаю, что вы попробовав разные варианты в разных проектах, пришли на данный момент типа к вот такому универсальному. Пока оно тебе видится идеальным. Но вот наверняка есть вероятность того, что за год ты накопишь негативного опыта и перепишешь в какой-то другой вид. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2014, 14:59 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ПарамонЭти проекции получается часть модели? Затем проекции мапятся во viewmodel? И всё же отвечу. Проекции могут как мапиться во вьюмодель, так и сами выступать конечным контейнером для данных. В случае OData это именно так. Зависит от общей концепции архитектуры. Основной, принятый принцип должен соблюдаться повсеместно, это важно для сопровождения и развития продукта. ПарамонМогут содержать логику? Нет, не могут. Логику содержит сам механизм проекции -- это логика, но не объект, хранящий проекцию. Поэтому проекции не относятся к слою доступа к данным. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2014, 14:59 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttУ нас нет одной единственной серебяной пилюли, одного универсального решения для всех задач.Хм. Вот теперь всё понятно. Пришли к очевидному выводу: разные задачи - разные реализации. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2014, 15:01 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAА о вас я думаю, что вы попробовав разные варианты в разных проектах, пришли на данный момент типа к вот такому универсальному. Пока оно тебе видится идеальным. Но вот наверняка есть вероятность того, что за год ты накопишь негативного опыта и перепишешь в какой-то другой вид. А я и не утверждал обратного Даже пол года назад я думал немного иначе. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2014, 15:01 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAhVosttУ нас нет одной единственной серебяной пилюли, одного универсального решения для всех задач.Хм. Вот теперь всё понятно. Пришли к очевидному выводу: разные задачи - разные реализации. Я уже столкнулся с кодом, написанным «под копирку» независимо от задачи. Хорошего мало. Единожды усвоенный урок некими специалистами потом использовался как единственно возможное решение. Кое что пришлось на корню переписывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2014, 15:03 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAпропущено... Хм. Вот теперь всё понятно. Пришли к очевидному выводу: разные задачи - разные реализации. Я уже столкнулся с кодом, написанным «под копирку» независимо от задачи. Хорошего мало. Единожды усвоенный урок некими специалистами потом использовался как единственно возможное решение. Кое что пришлось на корню переписывать.Вот странный ты человек. А чего ты тогда троллишь на тему всяких Query? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2014, 15:08 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVostt, Походу, проекции это самый приемлемый подход для работы orm с реляционной базой. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2014, 22:00 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ПарамонhVostt, Походу, проекции это самый приемлемый подход для работы orm с реляционной базой.Может стоит попробовать другой ORM? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2014, 23:23 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAПарамонhVostt, Походу, проекции это самый приемлемый подход для работы orm с реляционной базой.Может стоит попробовать другой ORM? Проблема не велика, а в чем то может быть и польза. Нет ничего идеального, а это уже в коробке, цветет и развивается :) А какой предложить хотел и чем он лучше? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 00:28 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAВот странный ты человек. А чего ты тогда троллишь на тему всяких Query? Вот сейчас не понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 06:29 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAМожет стоит попробовать другой ORM? При чём тут вообще выбор ORM? Проекции за ORM-ом, а не способ работы с ним. В SQL, например, именно так и работают: пишут SELECT <набор нужных полей из одной или нескольких таблиц или подзапросов> -- скажешь «плохой SQL, может стоит попробовать другой язык запросов?»? Странный ты человек однако. Что-то сказать видимо хочешь, а что хрен проссышь. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 06:31 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
с трудом я это все перечитал...) Уже и боюсь что-то ещё спрашивать) А по факту получилось куча методов Код: c# 1. 2. 3. 4.
Но из того что вы описывали в теме, как сделать по другому так и не понял))) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 07:19 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAМожет стоит попробовать другой ORM? При чём тут вообще выбор ORM? Проекции за ORM-ом, а не способ работы с ним. В SQL, например, именно так и работают: пишут SELECT <набор нужных полей из одной или нескольких таблиц или подзапросов> -- скажешь «плохой SQL, может стоит попробовать другой язык запросов?»? Странный ты человек однако. Что-то сказать видимо хочешь, а что хрен проссышь.А может и скажу :) В MongoDB тоже есть проекции, но! MongoDB документо-ориентированная, в ней полностью документ по ключу выбирается очень быстро и никто не будет заморачиваться насчет проекций, как средства повышения производительности. MongoDB придумывался для web, и отлично подходит для этого. Поэтому почему не попробовать ее в каком-нибудь поекте? Там есть свой язык запрсов :) Но это так, лирическое отступление. А насчет ORM: известно, что dapper уделывает EF по скорости, и возможно под задачи Парамона лучше подойдет он, чем EF. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 09:53 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAА насчет ORM: известно, что dapper уделывает EF по скорости, и возможно под задачи Парамона лучше подойдет он, чем EF. Известно, что ASM уделывает C#, Java и практически всё остальное по скорости. И чо? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 10:20 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
viton-zizuс трудом я это все перечитал...) Уже и боюсь что-то ещё спрашивать) А по факту получилось куча методов Код: c# 1. 2. 3. 4.
Но из того что вы описывали в теме, как сделать по другому так и не понял)))И не поймёте, пока грамотно вопрос не зададите :) Александр Бындю: "Использовать шаблон Specification вместе c шаблоном Query Object. Второй шаблон уже реализован в .NET с помощью дерева запросов на LINQ". Domain-Driven Design: Repository (смотрите Решение №2) Построение уровня доступа к данным с использованием шаблона "спецификация" в приложениях на ASP.NET MVC ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 10:27 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 10:28 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAЧерез плечо! Выбор ORM-стратегии (.NET) http://az.lib.ru/d/dostoewskij_f_m/text_0050.shtml Почитай. И пойми сам, что я этим хотел сказать. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 10:46 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVostt, да всё тоже. Инструмент выбирается под задачу, возможно Парамону в конкретно его задаче dapper подойдёт лучше, чем EF. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 10:56 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAhVostt, да всё тоже. Инструмент выбирается под задачу, возможно Парамону в конкретно его задаче dapper подойдёт лучше, чем EF. Да понятно. Но твоё замечание «уделывает по скорости» несколько нелепо. Их нельзя сравнивать по скорости, ибо объём работы который выполняется в Dapper и EF различается конкретно. Если уж на то, то любой кавказец на шестёрочке «уделает» любого олипийца на велики, ведь Кавказ -- сила! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 11:09 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAhVostt, да всё тоже. Инструмент выбирается под задачу, возможно Парамону в конкретно его задаче dapper подойдёт лучше, чем EF. Да понятно. Но твоё замечание «уделывает по скорости» несколько нелепо. Их нельзя сравнивать по скорости, ибо объём работы который выполняется в Dapper и EF различается конкретно. Если уж на то, то любой кавказец на шестёрочке «уделает» любого олипийца на велики, ведь Кавказ -- сила! Ну не надо. Например ты отказался от такого функционала как ленивая загрузка (lazy-loading) и предзагрузка (eager fetching) в угоду проекциям. Ты попросту перестал на этут тему заморачиваться. Так может и вообще не нужено всего того "объёма работ", что выполняет EF и задача полностью решится скоростью Dapper-а? Почему бы не задуматься на эту тему Парамону, ТСу, ещё какому читателю, а? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 11:45 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVostt, вот кстати такой вопрос. Если в сессии был загружен объект (для изменений например) Код: c# 1.
и по окончанию запроса мы отдаём его проекцию Код: c# 1.
То EF поймёт что надо брать объект из кэша, или будет делать отдельный запрос к БД? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 11:53 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAНапример ты отказался от такого функционала как ленивая загрузка (lazy-loading) и предзагрузка (eager fetching) в угоду проекциям. Ты попросту перестал на этут тему заморачиваться. Так может и вообще не нужено всего того "объёма работ", что выполняет EF и задача полностью решится скоростью Dapper-а? Почему бы не задуматься на эту тему Парамону, ТСу, ещё какому читателю, а? Я не отказывался от ленивой загрузки. В проекции также могут быть целые объекты, с ленивыми пропертями. А от «жадной» загрузки да -- в основном отказался. Не нашлось ещё такой задачи, где бы оно пригодилось. Я ж не буду под какую-то непонятную возможность специально выдумывать задачу? Кроме этого у EF есть целый вагон способностей, которых нет у Dapper. Если же в приоритете массивная работа с данными и она должна быть максимально быстрой, то можно посмотреть на Dapper. Или вообще NoSQL. Просто странно, что вдруг внезапно предложил на «выбор» другой ORM — точнее micro ORM. Просто так. К чему бы это? Я уверен, что Парамон в состоянии исследовать варианты, если возникнет такая необходимость. Когда EF был только в зачаточном состоянии, я использовал BLToolkit, ещё NHibernate (но этот пациент мне вообще не понравился, просто субъективно не вышло у нас подружиться). Потом увидел, что EF достиг юзабельного состояния и перешёл на него. О чём ни разу не пожалел. Последние версии EF работают очень даже шустро. Мало? Тогда прикручивается кеш 2 уровня, и вообще всё в шоколаде. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 12:37 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAhVostt, вот кстати такой вопрос. Если в сессии был загружен объект (для изменений например) Код: c# 1.
и по окончанию запроса мы отдаём его проекцию Код: c# 1.
То EF поймёт что надо брать объект из кэша, или будет делать отдельный запрос к БД? Зачем его куда-то отдавать? UOW.Save() и дело с концом. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 12:38 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAТо EF поймёт что надо брать объект из кэша, или будет делать отдельный запрос к БД? В рамках сессии один и тот же объект берётся из кеша. Но запрос с условием Where заставляет EF повторить запрос, даже если условие по Id. Это логично. Ну а если приделан кеш 2 уровня, повторного запроса к базе может и не быть. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 12:40 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttПоследние версии EF работают очень даже шустро. Мало? Тогда прикручивается кеш 2 уровня, и вообще всё в шоколаде.Ты случаем не про эту ли статью: Second-Level Caching in the Entity Framework and Azure ? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 12:46 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAhVostt, вот кстати такой вопрос. Если в сессии был загружен объект (для изменений например) Код: c# 1.
и по окончанию запроса мы отдаём его проекцию Код: c# 1.
То EF поймёт что надо брать объект из кэша, или будет делать отдельный запрос к БД? Зачем его куда-то отдавать? UOW.Save() и дело с концом.Хм. Пользователь запостил изменения, для изменений ты тянешь Entity. Применили изменения, пользователю нужно отдать данные для отображения во View. Для отображения ты используешь проекции. Вроде так. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 12:49 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAhVosttПоследние версии EF работают очень даже шустро. Мало? Тогда прикручивается кеш 2 уровня, и вообще всё в шоколаде.Ты случаем не про эту ли статью: Second-Level Caching in the Entity Framework and Azure ? Я про https://efcache.codeplex.com/ ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 12:49 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAпропущено... Ты случаем не про эту ли статью: Second-Level Caching in the Entity Framework and Azure ? Я про https://efcache.codeplex.com/ Использовал? С чем? Redis, Couchbase? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 12:51 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAХм. Пользователь запостил изменения, для изменений ты тянешь Entity. Применили изменения, пользователю нужно отдать данные для отображения во View. Для отображения ты используешь проекции. Вроде так. А понял о чём ты. После сабмита данные будут извлечены ещё раз, если они будут затребованы, так за это время могут быть ещё и другие изменения (другими потоками например), которые следует учесть, чтобы отправляемые данные были максимально актуальны. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 12:52 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAhVosttпропущено... Я про https://efcache.codeplex.com/ Использовал? С чем? Redis, Couchbase? Memory. Но в ближайшее время планируем поработать с Redis, как раз проект назревает, где может понадобиться работать с приличными нагрузками. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 12:53 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAХм. Пользователь запостил изменения, для изменений ты тянешь Entity. Применили изменения, пользователю нужно отдать данные для отображения во View. Для отображения ты используешь проекции. Вроде так. А понял о чём ты. После сабмита данные будут извлечены ещё раз, если они будут затребованы, так за это время могут быть ещё и другие изменения (другими потоками например), которые следует учесть, чтобы отправляемые данные были максимально актуальны.Окей. А теперь представь, что вы перешли на Redis. Следовательно другие потоки обновили в нём данные. EF поймёт это в случае с проекциями? Или тебе надо попробовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 12:56 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Хотя если у вас один сервер, то должно работать и с Memory. При чём тут другие потоки, если всё в рамках одного пула? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 12:57 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Так что отмаза не катит :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 12:57 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAОкей. А теперь представь, что вы перешли на Redis. Следовательно другие потоки обновили в нём данные. EF поймёт это в случае с проекциями? Или тебе надо попробовать? Поймёт, если кеш реализован правильно. В случае не-Memory, а, например, Redis, не могу пока ответить на эти вопросы. Опыта пока соответствующего нет. skyANAХотя если у вас один сервер, то должно работать и с Memory. При чём тут другие потоки, если всё в рамках одного пула? Один, другие потоки в смысле, другие пользователи параллельно сделали изменения, проекцию всегда надо брать из одного источника (считая кеш 2 уровня). ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 13:00 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAТак что отмаза не катит :) Чего, какие отмазы? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 13:01 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAТак что отмаза не катит :) Чего, какие отмазы? Ну ты пишешь: "за это время могут быть ещё и другие изменения (другими потоками например), которые следует учесть". При этом у вас кэш второго уровня в памяти, зачем что-то учитывать, если EF это разруливает? Или таки не разруливает? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 13:06 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAНу ты пишешь: "за это время могут быть ещё и другие изменения (другими потоками например), которые следует учесть". При этом у вас кэш второго уровня в памяти, зачем что-то учитывать, если EF это разруливает? Или таки не разруливает? :) Ты взял Entity, изменил его, сохранил. Затем взял проекцию EntitySomeDto, которая может (и скорее всего будет) включать данные из других зависимых таблиц. Про изменения в них EF ничего не знает в рамках контекста. Никто ничего не разруливает, если данные, попадающие в проекцию есть в кеше, то запроса к базе данных не будет. Это сильно зависит от реализации кеша, так как EF его не реализует. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 13:08 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttЭто сильно зависит от реализации кеша, так как EF его не реализует.То есть кэш-таки надо самому реализовывать под свои нужды? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 13:12 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAhVosttЭто сильно зависит от реализации кеша, так как EF его не реализует.То есть кэш-таки надо самому реализовывать под свои нужды? А кто это сделает за тебя, если никто кроме тебя твоих нужд не знает? Но https://efcache.codeplex.com/ хорошая основа. Не исключено, что появятся обобщённые решения под редиску и другие шутки. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 13:20 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAпропущено... То есть кэш-таки надо самому реализовывать под свои нужды? А кто это сделает за тебя, если никто кроме тебя твоих нужд не знает?Вооот! И так посмотришь на EF: того, что мне нужно нет, сего. И проще взять dapper и дописать к нему всё, что тебе нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 13:37 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAВооот! И так посмотришь на EF: того, что мне нужно нет, сего. И проще взять dapper и дописать к нему всё, что тебе нужно. Возможно. Только надо не смотреть на него, а пользоваться им, затем делать утверждения исходя из опыта, а не каких-то ощущений. А же если не собираешься пользоваться, то и смотреть не надо, просто игнорь. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 13:41 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAВооот! И так посмотришь на EF: того, что мне нужно нет, сего. И проще взять dapper и дописать к нему всё, что тебе нужно. Возможно. Только надо не смотреть на него, а пользоваться им, затем делать утверждения исходя из опыта, а не каких-то ощущений. А же если не собираешься пользоваться, то и смотреть не надо, просто игнорь. У нас исторически NHibernate. Наелись им. В каких-то местах уже используем dapper, и знаешь, полностью устраивает :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 13:44 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAУ нас исторически NHibernate. Наелись им. Фу-фу-фу, бяка. У нас тоже он есть местами, исторически. skyANAВ каких-то местах уже используем dapper, и знаешь, полностью устраивает :) А нас EF вполне даже устраивает ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 13:48 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAhVostt, да всё тоже. Инструмент выбирается под задачу, возможно Парамону в конкретно его задаче dapper подойдёт лучше, чем EF. Да понятно. Но твоё замечание «уделывает по скорости» несколько нелепо. Их нельзя сравнивать по скорости, ибо объём работы который выполняется в Dapper и EF различается конкретно. Если уж на то, то любой кавказец на шестёрочке «уделает» любого олипийца на велики, ведь Кавказ -- сила! руки прочь от кавказа! кавказ не трошь!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 16:43 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ViPRosруки прочь от кавказа! кавказ не трошь!!! Дык ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 17:53 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAА насчет ORM: известно, что dapper уделывает EF по скорости, и возможно под задачи Парамона лучше подойдет он, чем EF. Когда EF станет у нас бутылочным горлышком, то будем думать, а пока что свою работу делает ) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 21:02 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ПарамонskyANAА насчет ORM: известно, что dapper уделывает EF по скорости, и возможно под задачи Парамона лучше подойдет он, чем EF. Когда EF станет у нас бутылочным горлышком, то будем думать, а пока что свою работу делает )Ну меня это мало интересует :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 23:05 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAПарамонпропущено... Когда EF станет у нас бутылочным горлышком, то будем думать, а пока что свою работу делает )Ну меня это мало интересует :) А показалось, что ты мне что-то предлогал ) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 23:34 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ПарамонskyANAпропущено... Ну меня это мало интересует :) А показалось, что ты мне что-то предлогал )Даже если и предлагал, то это не значит, что мне интересны ваши горлышки. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 23:42 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAПарамонпропущено... А показалось, что ты мне что-то предлогал )Даже если и предлагал, то это не значит, что мне интересны ваши горлышки. Горлышки, хе, с понятием Bottleneck в программной архитектуре ты не знаком ) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2014, 23:57 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ПарамонskyANAпропущено... Даже если и предлагал, то это не значит, что мне интересны ваши горлышки. Горлышки, хе, с понятием Bottleneck в программной архитектуре ты не знаком )Просвети, желательно с конкретными метриками. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2014, 07:05 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAПросвети, желательно с конкретными метриками. Троллинг моде он ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2014, 11:17 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAПросвети, желательно с конкретными метриками. Троллинг моде он Со стороны Пармона, да. А мне же реально интересно, даже тема для этого была создана: " Производительность приложений. Мониторинг и профилирование. ". Глядишь, может парень какими-то ценными знаниями поделится. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2014, 11:50 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAПарамонпропущено... Горлышки, хе, с понятием Bottleneck в программной архитектуре ты не знаком )Просвети, желательно с конкретными метриками. раз гугель в бане, я начну с простых иллюстраций ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2014, 12:39 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ПарамонskyANAпропущено... Просвети, желательно с конкретными метриками. раз гугель в бане, я начну с простых иллюстраций Фиговое начало, картинка не отображается. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2014, 12:50 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAПарамонпропущено... раз гугель в бане, я начну с простых иллюстраций Фиговое начало, картинка не отображается. хе, в FF глянь. Чо-то хрон все хуже ) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2014, 13:01 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
ПарамонskyANAпропущено... Фиговое начало, картинка не отображается. хе, в FF глянь. Чо-то хрон все хуже ) О, ты про это. Да я в этом эксперт. Так что проходи мимо, тролололь! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2014, 13:13 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAВ реальности бывают и простые объекты и сложные. Вот нужно будет тебе 100 карточек через Web API отдать наружу, ты получается 200 запросов к БД вместо 100 будешь посылать даже если чётко представляешь, что "жадная загрузка" не представляет из себя избыточный SELECT? Ну и опять какие-то левые слова пошли :) Что такое чертежи? Хуже, когда нужно достать из БД N карточек, подпадающих под определенное условие, с включением M навигационных свойств. Тогда при использовании Include будет сделан 1 (но, возможно, сложный) SQL-запрос. При Lazy loading будет выполнено 1 + N*M запросов. Если предполагается включить большое количество навигационных свойств (особенно коллекций) и запрос получается слишком громоздкий, то его можно разбить на несколько с разными инклюдами (на сколько именно и каких решаем при помощи SQL-профайлера и здравого смысла) и выполнить их последовательно с MergeOption.AppendOnly. В данном случае будет фиксированное кол-во запросов, не зависящее от числа возвращенных карточек. Также никто не запрещает комбинировать Eager и Lazy loading. Например, когда заранее неизвестно, какие именно навигационные свойства потребуются. В этом случае может иметь смысл "жадно" загрузить те навигационные свойства, которые потребуются с большей вероятностью, и "лениво" подгружать остальные. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2014, 07:44 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
Gluck_13Хуже, когда нужно достать из БД N карточек, подпадающих под определенное условие, с включением M навигационных свойств. Чтобы больше не городить подобную небогоугодную чушь, надо просто понять, сколько информации за раз обычно нужно пользователю, сколько на экране места, для того, чтобы её отобразить, и со сколькими разными сущностями человек может работать одновременно. И тогда все эти «жадные» загружки отправяться лесом за ненадобностью. Если у кого-то вагон ненужного времени, и больше в этой жизни заняться-то нечем, может колупать себе и остальным мозг на тему абстрактных карточек и как их лучше всего «грузить». Этот бред уже переваливает за край. Накуй пользователю эти ваши M навигационных свойств? И зачем дрочить базу данных, канал связи, оперативу и мозг по этому поводу? Бери только то, что нужно, именно так работают с базой данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2014, 11:58 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVostt, это хорошо, когда одно View, где нужен один набор проекций. А когда у тебя K представлений, то начинаются вопросы. А если данные нужны не для отображения а для массовой обработки? Вообщем проекции постепенно перестают быть DTO и начинают пролазить в бизнес-логику :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2014, 12:29 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAhVostt, это хорошо, когда одно View, где нужен один набор проекций. А когда у тебя K представлений, то начинаются вопросы. А если данные нужны не для отображения а для массовой обработки? Вообщем проекции постепенно перестают быть DTO и начинают пролазить в бизнес-логику :) Если речь идёт о попытке сэкономить на кодировании, городя К представлений, то это весьма наивно. Проекции итак являются частью бизнес-логики, потому что как раз представляют данные, которые нужны бизнесу (для работы и отображения), а не формат их хранения. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2014, 13:44 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAhVostt, это хорошо, когда одно View, где нужен один набор проекций. А когда у тебя K представлений, то начинаются вопросы. А если данные нужны не для отображения а для массовой обработки? Вообщем проекции постепенно перестают быть DTO и начинают пролазить в бизнес-логику :) Если речь идёт о попытке сэкономить на кодировании, городя К представлений, то это весьма наивно. Проекции итак являются частью бизнес-логики, потому что как раз представляют данные, которые нужны бизнесу (для работы и отображения), а не формат их хранения.Не понял мысль. Возможно от того, что решал сейчас набор задач в комплексных числах. Контекст не переключается :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2014, 16:22 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAНе понял мысль. Ок skyANAА когда у тебя K представлений, то начинаются вопросы. Надо понимать, что представлений обычно больше, чем 1. У меня вопросов по этому поводу не возникает. Ну К, так К. Или М. Чем больше требуется представлений, тем сложнее приложение, это нормально. skyANAА если данные нужны не для отображения а для массовой обработки? Какой, вычисления? Ну тем более, через отражения легко аккумулировать данные. Если требуются сложные вычисления, которые невозможно (или нерационально) выполнять на уровне запросов, то какая разница, как брать данные? Требуется трансфер и преобразование данных? Тоже самое, с проекциями можно выполнить всю или большую часть работы. Что ещё требуется? Загружать сложнейшее состояние из базы данных, включающее в себя тонну связей? Ну возможно потребуется несколько проекций, а может вообще они не потребуется. Конкретики бы. skyANAВообщем проекции постепенно перестают быть DTO и начинают пролазить в бизнес-логику :) Я сторонник эффективного, быстрого и успешного решения задач. Я разделяю архитектуру на слои не просто потому что так где-то написано или так кем-то принято. Я вижу в этом определённые и вполне конкретные преимущества. Проекции в этой архитектуре обычно существуют на стыке слоя доступа к данным и бизнес-логики, при чём сама конфигурация проекции -- это область компетенции бизнес-логики, так как это ей нужны данные, а из слоя доступа к данным всего лишь торчит репозиторий с очень простым обобщённым интерфейсом. Там нет никаких проекций, только чистая модель данных (EDM). Короче, класс проекции, это DTO. А сама конфигурация проекции -- это бизнес-логика. Таким образом бизнес-логика может отдавать DTO, или иметь свою модель собираемую из DTO, или комбинировать эти техники наиболее эффективным образом. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2014, 18:16 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
hVosttskyANAНе понял мысль. Ок skyANAА когда у тебя K представлений, то начинаются вопросы. Надо понимать, что представлений обычно больше, чем 1. У меня вопросов по этому поводу не возникает. Ну К, так К. Или М. Чем больше требуется представлений, тем сложнее приложение, это нормально.Тут я имел в виду, что клиентов у бизнес логики может быть K: сайт, десктоп, сервисы, выгрузки какие-то, API. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2014, 19:56 |
|
Связь один к одному EF Code First
|
|||
---|---|---|---|
#18+
skyANAТут я имел в виду, что клиентов у бизнес логики может быть K: сайт, десктоп, сервисы, выгрузки какие-то, API. Так REST-же. Проекции для REST -- то, что доктор прописал. Они же могут дополнительно кешироваться (3 level) по типу. На проекции делаются нормальный IQueryable запросы, что выгодно для OData (да и вообще). Ну круто я считаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2014, 22:01 |
|
|
start [/forum/topic.php?all=1&fid=17&tid=1349680]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
152ms |
get topic data: |
15ms |
get forum data: |
4ms |
get page messages: |
380ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 595ms |
0 / 0 |