powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Связь один к одному EF Code First
25 сообщений из 357, страница 8 из 15
Связь один к одному EF Code First
    #38799615
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosskyANA,

"жадная" в математике определено, потому скорее это "полная"
воще то я считаю что ОРМ только и нужен для того что бы одним махом загрузить объект или его проекции
при этом хорошо бы иметь и лейзи

получается что в ЕФ нет ни того, ни другого :(

Всё встаёт на свои места, когда понимаешь, что навигационные свойства ≠ вложенные объекты. Странно, почему этот факт многие игнорируют?
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38799616
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAМне было не понятно то, почему ТСу, кто хочет "жадно" загрузить объект, предлагаются какие-то проекции. Я это озвучил.

Что тебя тут смущает?

Ты глубже посмотреть не пробовал? Предлагаются не «какие-то проекции», а более эффективный способ работать с данными.

Нужно же понимать, что пример с Cart.Person очень ограниченный, в реале объекты гораздо больше и схема сложнее. Поэтому Include и «жадные» загрузки неизбежно приведут к проблемам. Я человека пытаюсь оградить от этого, а ты непонятно чего хочешь. Типа говорят человеку, что для постройки дома нужны чертежи, ты же опираясь на пример с будкой, впариваешь, что чертежи ненужны, сойдёт и так.В реальности бывают и простые объекты и сложные.

Вот нужно будет тебе 100 карточек через Web API отдать наружу, ты получается 200 запросов к БД вместо 100 будешь посылать даже если чётко представляешь, что "жадная загрузка" не представляет из себя избыточный SELECT?

Ну и опять какие-то левые слова пошли :) Что такое чертежи?
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38799617
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRoshVostt,

ты вот теперь представляешь почему у ЕФ такие проблемы? (хотя бы то что низзя инклюд вывести за скобки)

Я не вижу никаких проблем.

Include нельзя вынести за скобки, потому что БД может быть спроектирована таким образом, что вытащишь один объект, а он через связи потянет за собой половину или почти всю базу данных. Include это костыль, призванный удовлетворить тех упёртых ребят, которые никак не хотят видеть разницу между навигационными свойствами и вложенными объектами.

Работать с «целым» объектом -- кажется вот как видится ORM, но это совсем не так.
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38799619
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAНе согласен. Для задачи ТС Include() прекрасно подходит.

Для какой задачи? Ты УВЕРЕН что знаешь задачу ТС? Он привёл один маленький примерчик. Думаешь это и есть задача? Ахааххаах... это... довольно мило, если ты так считаешь Уверен, так что завязывай троллить, глупо.
ТС чёрными русскими буквами писал, что рабочий проект сдан давно, он чисто для себя балуется с EF: 16746956 .

Видимо из-за этого кстати и вопросы дополнительные не задаёт, занялся чем другим по работе.
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38799624
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAВот нужно будет тебе 100 карточек через Web API отдать наружу, ты получается 200 запросов к БД вместо 100 будешь посылать даже если чётко представляешь, что "жадная загрузка" не представляет из себя избыточный SELECT?

Почему? Зная, что Person внутри Cart, это навигационное свойство , а не вложенный объект ? Ты пытаешься это знание скрыть. А если таких свойств 20? А у них еще по 10? Покажи-ка мне какая получится инструкция с Include().Include().Include().Include().Include().Include() ?


skyANAНу и опять какие-то левые слова пошли :) Что такое чертежи?

У тебя банальные проблемы с метафорами. Макконнелла почитай.
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38799626
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosа в твоем монго (с твоих слов и по твоему прмеру) нет никакого графа объектов, а есть вложенная разметкаА MongoDB то тут при чём? JSON строка - это просто строка, однако её можно преобразовать к графу объектов.
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38799627
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAУверен, так что завязывай троллить, глупо.
ТС чёрными русскими буквами писал, что рабочий проект сдан давно, он чисто для себя балуется с EF: 16746956 .

Видимо из-за этого кстати и вопросы дополнительные не задаёт, занялся чем другим по работе.

Дурака-то не включай. Если он балуется, чтобы затем бросить, значит вообще плевать что ему тут советуют. Если он сейчас балуется, чтобы затем применять по назначению, значит надо сразу закладывать правильный фундамент. Include -- зло, и не должно применяться на практике. Почему, я уже объяснил.
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38799628
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

часто "целые" объекты нужны, особенно если есть ограничения, которые невозможно описать контсрейнтами СКЛ в СУБД
потому и инклюд и лейзи должны быть вынесены за скобки и быть обусловленными от OCL модели
просто у ЕФ нет модели, потому и такие ляпы (ЕФ просто не знает где закончится граф, потому не может оценить реультат и включить лейзи автоматом, да и контрейнты он не анализирует нифига)
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38799629
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

а монго преобразовывает?
вот мамс преобразовывала в 80 году
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38799631
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRoshVostt,

часто "целые" объекты нужны, особенно если есть ограничения, которые невозможно описать контсрейнтами СКЛ в СУБД
потому и инклюд и лейзи должны быть вынесены за скобки и быть обусловленными от OCL модели
просто у ЕФ нет модели, потому и такие ляпы (ЕФ просто не знает где закончится граф, потому не может оценить реультат и включить лейзи автоматом, да и контрейнты он не анализирует нифига)

Я не думаю, что ЕФ задумывался настолько топ-левел. Это прослойка между реляционной БД и кодом. Не более того. Вроде как планируется туда включить ещё и NoSQL. Хз конечно, что получится.
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38799632
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

ок
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38799636
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttViPRosskyANA,

"жадная" в математике определено, потому скорее это "полная"
воще то я считаю что ОРМ только и нужен для того что бы одним махом загрузить объект или его проекции
при этом хорошо бы иметь и лейзи

получается что в ЕФ нет ни того, ни другого :(

Всё встаёт на свои места, когда понимаешь, что навигационные свойства ≠ вложенные объекты. Странно, почему этот факт многие игнорируют?Потому как не все при проектировании доменной модели пользуются терминологией EF :)

Если я запрашиваю данные туриста у сервиса поставщика, то ожидаю увидеть заполненными все свойства, а не предложение дёрнуть ещё пару методов сервиса, так как ну это же на самом деле навигационные свойства, у нас в базе они по разным таблицам раскиданы.
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38799638
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

значит надо договориться с сервисом
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38799639
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAВот нужно будет тебе 100 карточек через Web API отдать наружу, ты получается 200 запросов к БД вместо 100 будешь посылать даже если чётко представляешь, что "жадная загрузка" не представляет из себя избыточный SELECT?

Почему? Зная, что Person внутри Cart, это навигационное свойство , а не вложенный объект ? Ты пытаешься это знание скрыть. А если таких свойств 20? А у них еще по 10? Покажи-ка мне какая получится инструкция с Include().Include().Include().Include().Include().Include() ?Давай остановимся на случае, когда свойство одно. Совершенно не редкий случай.

hVosttskyANAНу и опять какие-то левые слова пошли :) Что такое чертежи?

У тебя банальные проблемы с метафорами. Макконнелла почитай. А, вот оно что. Ты считаешь что классно и понятно объясняешь всё метафорически. Заблуждаешься :)
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38799640
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAПотому как не все при проектировании доменной модели пользуются терминологией EF :)

Если я запрашиваю данные туриста у сервиса поставщика, то ожидаю увидеть заполненными все свойства, а не предложение дёрнуть ещё пару методов сервиса, так как ну это же на самом деле навигационные свойства, у нас в базе они по разным таблицам раскиданы.

Да что ты говоришь?

Какой наивно-оптимистичный подход! Я бы даже сказал, достойный прыщавого юнца.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
public class Item 
{
   public long Id {get;set;}
   public string Name {get;set;}
   public virtual Catalog Catalog {get;set;}
}

public class Catalog
{
   public long Id {get;set;}
   public string Name {get;set;}
   public virtual ICollection<Item> Items {get;set;}
   public virtual Store {get;set;}
}

public class Store
{
   public long Id {get;set;}
   public string Name{get;set;}
   public virtual ICollection<Catalog> Catalogs {get;set;}
}



Т.е. дёрнув из базы всего один единственный Item, мы получим целую свалку данных, путешествуя по графу, от Catalog до Store, затем получая попутно все Catalogs и в каждом из них Items

Хороший же запрос получится, что сказать
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38799641
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosskyANA,

значит надо договориться с сервисомО чём? С сервисами всё нормально, они там где надо "жадно" отдают. Там где не надо, предлагает воспользоваться соответсвующими методами.
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38799642
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAА, вот оно что. Ты считаешь что классно и понятно объясняешь всё метафорически. Заблуждаешься :)

Просто ты не понимаешь метафор, это я уже уяснил.
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38799644
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAО чём? С сервисами всё нормально, они там где надо "жадно" отдают. Там где не надо, предлагает воспользоваться соответсвующими методами.

Что это значит «там где надо»? Т.е. всё-таки договориться? Ахахах... Удивляешь всё больше и больше.
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38799645
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAПотому как не все при проектировании доменной модели пользуются терминологией EF :)

Если я запрашиваю данные туриста у сервиса поставщика, то ожидаю увидеть заполненными все свойства, а не предложение дёрнуть ещё пару методов сервиса, так как ну это же на самом деле навигационные свойства, у нас в базе они по разным таблицам раскиданы.

Да что ты говоришь?

Какой наивно-оптимистичный подход! Я бы даже сказал, достойный прыщавого юнца.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
public class Item 
{
   public long Id {get;set;}
   public string Name {get;set;}
   public virtual Catalog Catalog {get;set;}
}

public class Catalog
{
   public long Id {get;set;}
   public string Name {get;set;}
   public virtual ICollection<Item> Items {get;set;}
   public virtual Store {get;set;}
}

public class Store
{
   public long Id {get;set;}
   public string Name{get;set;}
   public virtual ICollection<Catalog> Catalogs {get;set;}
}



Т.е. дёрнув из базы всего один единственный Item, мы получим целую свалку данных, путешествуя по графу, от Catalog до Store, затем получая попутно все Catalogs и в каждом из них Items

Хороший же запрос получится, что сказать Ну вот опять глупый троллинг.
Я же писал, что нужно понимать, где можно и нужно "жадно", а где "лениво": 16817259 .

Зачем ты выдумываешь то, чего я бы не сделал?
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38799646
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAViPRosskyANA,

значит надо договориться с сервисомО чём?
о схемах :)
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38799647
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosskyANAпропущено...
О чём?
о схемах :)Ну обычно в документации пишут, где "жадно", а где надо отдельно допрашивать данные :)
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38799648
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

без обид
такое впечатление, что ты что то вызубрил и точно знаешь, но не мыслишь
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38799649
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAНу вот опять глупый троллинг.
Я же писал, что нужно понимать, где можно и нужно "жадно", а где "лениво": 16817259 .

Зачем ты выдумываешь то, чего я бы не сделал?

И как это понимать, указывать Include? Вот у сервиса требуют объект Cart, откуда сервис знает, включать ли туда Person и чего-то ещё, или нет? Понимаешь, что этот бардак будет только разрастаться.

Предлагаешь делать так:

GetCartWithPerson(id)
GetCartWithPersonAndContacts(id)
GetCartWithContactsOnly(id)

?

Или построить для этих целей «красивый» Object Query?
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38799650
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAНу обычно в документации пишут, где "жадно", а где надо отдельно допрашивать данные :)

Есть же любители намерянно всё усложнять и делать через зад. Выбирают себе зачем-то профессию разработки ПО вместо проктолога.
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38799652
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

в ВИПРОС пишем
LoadAndFillMacroType("Контракт");

(
public void LoadAndFillMacroType(string macrotypename, Guid contextid, bool viewmode = false)
public void LoadAndFillMacroType(string macrotypename, bool viewmode = false)
)
А Контракт громадный граф
...
Рейтинг: 0 / 0
25 сообщений из 357, страница 8 из 15
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Связь один к одному EF Code First
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]