|
EF 4.1 Fluent mapping
|
|||
---|---|---|---|
#18+
Добрый день, уважаемые коллеги! Пользуясь случаем, Поздравляю Вас с наступающим Новым Годом! И у меня есть вот такой вопрос: Итак у нас есть следующие POCO-объекты: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Настраиваем маппинг, используя Fluent API интерфейс Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
Далее создаем свой контекст, согласно примерам из ADO.Net Team Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Ну и собственно вопрос Код: c# 1. 2.
как мне указать маппинг, так чтобы при выполнении вышеуказанного кода в экземпляре team, загружались элементы коллекции Players? Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2011, 11:26 |
|
EF 4.1 Fluent mapping
|
|||
---|---|---|---|
#18+
Алексей К Using DbContext in EF 4.1 Part 6: Loading Related Entities Спасибо за ссылку. Но в той статье используется ключевое слово Using DbContext. Я конечно понимаю что без контекста ни как. Но мне все таки хотелось бы обойтись без Include(явным вызовом). Можно это программно настроить как в L2S? что бы контекст при материализации(новое слово освоил), еще и сам лез в БД и заполнял коллекцию. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2011, 12:33 |
|
EF 4.1 Fluent mapping
|
|||
---|---|---|---|
#18+
Хочется вот такого простого. как в NHibernate Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2011, 13:03 |
|
EF 4.1 Fluent mapping
|
|||
---|---|---|---|
#18+
Я бы получил вложенную коллекцию вложенным LINQ-запросом. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2011, 13:22 |
|
EF 4.1 Fluent mapping
|
|||
---|---|---|---|
#18+
Алексей КЯ бы получил вложенную коллекцию вложенным LINQ-запросом. Вы бв сделали вот так?: Код: c# 1.
Получить объект Team и все объекты вложенной коллекции. Если так, то надо придумать мне как в метод репозитория T GetByID(int id), передавать список Expression для Include. Хочется сделать репозиторий, у которого будет метод GetByID и этот метод сам должен подгружать вложенные объекты в T. Может кто встречал такую реализацию репозитория? З.Ы. Был сильно удивлен. что для того чтобы получить объект и все объекты вложенной коллекции. EF делает один sql-запрос: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
в L2S было бы 3 не больших(простых) запроса. Это хорошо что к sql-серверу идет один, но большой запрос? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 12:12 |
|
EF 4.1 Fluent mapping
|
|||
---|---|---|---|
#18+
GFXв L2S было бы 3 не больших(простых) запроса.Хорошо ли это? GFXЭто хорошо что к sql-серверу идет один, но большой запрос?Наверное. Всё зависит от плана выполнения. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 12:44 |
|
EF 4.1 Fluent mapping
|
|||
---|---|---|---|
#18+
GFXВы бв сделали вот так?: Код: c# 1.
Получить объект Team и все объекты вложенной коллекции.Можно так. Можно и не так. Как больше нравится. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 12:53 |
|
EF 4.1 Fluent mapping
|
|||
---|---|---|---|
#18+
Алексей КGFXв L2S было бы 3 не больших(простых) запроса.Хорошо ли это? GFXЭто хорошо что к sql-серверу идет один, но большой запрос?Наверное. Всё зависит от плана выполнения. 1. Думаю что много запросов для того чтобы материализовать бизнес-объект, это все таки плохо... Здесь EF круче чем L2S. 2. А вот план большого запроса, меня более чем устраивает! все джонит через Clustered Index scan ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 13:09 |
|
EF 4.1 Fluent mapping
|
|||
---|---|---|---|
#18+
Алексей КGFXВы бв сделали вот так?: Код: c# 1.
Получить объект Team и все объекты вложенной коллекции.Можно так. Можно и не так. Как больше нравится. :-) А как бы Вы сделали? как Вам больше нравится? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 13:11 |
|
EF 4.1 Fluent mapping
|
|||
---|---|---|---|
#18+
GFX1. Думаю что много запросов для того чтобы материализовать бизнес-объект, это все таки плохо...Я бы не был столь категоричен. Всё зависит от конкретного случая. В большинстве случаев один запрос предпочтительнее, но всяко бывает. GFXЗдесь EF круче чем L2S.Это да. GFX2. А вот план большого запроса, меня более чем устраивает! все джонит через Clustered Index scanClustered Index scan - скорее плохо чем хорошо. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 13:14 |
|
EF 4.1 Fluent mapping
|
|||
---|---|---|---|
#18+
GFXА как бы Вы сделали? как Вам больше нравится?Вместо Include сделал бы вложенный запрос. По сути - тоже самое. Но это уже субъективно, чисто дело вкуса. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 13:18 |
|
EF 4.1 Fluent mapping
|
|||
---|---|---|---|
#18+
Алексей КClustered Index scan - скорее плохо чем хорошо. :-) Оказалось что в одном джойне Scan, а во всех случаях seek. А это хорошо :) У меня еще один вопрос к Вам, какую реализацию Repository посоветуете? Наверняка, вы EF уже заюзали в промыленном масштабе, ну и этот момент (с репозиторием) уже прорабатывали :) Спасибо! офтоп: Видимо для нового проекта выберу все таки не L2S, а EF 4.1. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 13:43 |
|
EF 4.1 Fluent mapping
|
|||
---|---|---|---|
#18+
GFXв L2S было бы 3 не больших(простых) запроса. Это хорошо что к sql-серверу идет один, но большой запрос? Хорошо. Межпроцессные (и межмашинные в том числе) вызовы - абсолютное зло. Их количество следует минимизировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 14:21 |
|
|
start [/forum/topic.php?fid=17&fpage=38&tid=1350500]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 146ms |
0 / 0 |