|
|
|
поделитесь опытом по Data Services
|
|||
|---|---|---|---|
|
#18+
Пытаюсь написать первое приожение c использованием EF и Data Services постоянно встречаюсь с разными проблемами, от ошибок до отсутствия информации. Скажите, кто-нибудь пытался использовать Data Services для написания реальных приложений? Стоит ли это делать? ИМХО технология еще сырая с кучей ошибок и недоработок. Возможно я не прав. Поделитесь опытом. Может быть стоит использовать другие ORM или писать используя "чистый" WCF? Я видел статью, где описывается реализация бизнес логики через WCF и Entity Framework, но она писалась для VS2008 и FW 3.5 (без SP1), т.е. когда Data Services еще не было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2010, 09:01 |
|
||
|
поделитесь опытом по Data Services
|
|||
|---|---|---|---|
|
#18+
Сделал пару тестовых примеров - всё нормально. "Сырость" технологии вполне может оказаться "кривизной" рук. Тут такое часто. Найдите книгу - будет легче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2010, 11:56 |
|
||
|
поделитесь опытом по Data Services
|
|||
|---|---|---|---|
|
#18+
Нашел книгу, спасибо. Однако попробуйте сами, bured, сделать структуру как на рисунке. При добавлении в Entity2 - получите ошибку сервиса, а данные в базу добавятся. Если удалите навигационное свойство Entity3 из Entity2, то сервис будет работать нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2010, 15:03 |
|
||
|
поделитесь опытом по Data Services
|
|||
|---|---|---|---|
|
#18+
На досуге попробую. Скорее всего какая-то тонкость работы с "деревьями". Бросьте ваш код на всякий случай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2010, 15:08 |
|
||
|
поделитесь опытом по Data Services
|
|||
|---|---|---|---|
|
#18+
Спасибо за участие, кидаю код. Перед использованием кода нужно создать базу Proba и сгенерить таблицы (sql в проекте). На всякий случай напоминаю последовательность действий после изменения в модели: 1) перегенерить базу данных (сгенерит sql и запустить) 2) скомпилить проект с сервисом данных 3) остановить прежний сервис данных (если он болтался в трее) 4) удалить ссылку на сервис в проекте Winforms и добавить заново ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2010, 23:02 |
|
||
|
поделитесь опытом по Data Services
|
|||
|---|---|---|---|
|
#18+
Разобрался. Вот сообщение, которое я получил при ответе, используя fiddler (без него сообщение не было видно). Здесь у меня родительская сущность Firms, а дочерняя FirmLocal. Navigation Properties are not supported on derived entity types. Entity Set 'Firms' has a instance of type 'skladModel.FirmLocal', which is an derived entity type and has navigation properties. Please remove all the navigation properties from type 'skladModel.FirmLocal' Оказывается навигационные свойства в порожденных сущностях не поддерживаются (вот те на!). Очень плохо. Думаю или отказаться от наследования или делать ссылки от родительской сущности (скорее всего придется пойти по первому варианту, иначе будет полный бардак с ассоциациями, т.к. и меня две порожденные сущности от одного родителя ссылаются на другую сущность). Но новость неприятная, так как сильно ограничивает возможности модели данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2010, 15:27 |
|
||
|
поделитесь опытом по Data Services
|
|||
|---|---|---|---|
|
#18+
vinvin, попробуй передавать родителя и детей отдельно и восстанавливать связь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2010, 15:45 |
|
||
|
поделитесь опытом по Data Services
|
|||
|---|---|---|---|
|
#18+
Не получится, так как родитель - абстрактный, а у дочерней сущности нет ключевого свойства (это один из принципов наследования в модели EF) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2010, 22:33 |
|
||
|
поделитесь опытом по Data Services
|
|||
|---|---|---|---|
|
#18+
Ни черта не понял. Я не про ООП. Мне казалось твоя задача передать дерево сущностей: родительская запись и дочерние с внеш. ключём к родительской. Data Service вроде бы не умеет передавать деревья. (если только не как-то хитрожопно сериализуя руками ) Т.е. надо родительскую и коллекцию дочерних передавать отдельно и восстанавливать внешний ключ после получения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2010, 23:36 |
|
||
|
поделитесь опытом по Data Services
|
|||
|---|---|---|---|
|
#18+
Я пошел другим путем - оставил родительскую сущность, сделал ее не абстрактной и привязал к дочерним отношением один к одному. Только все равно странно, почему разработчики Data Services сознательно сделали ограничения на навигационные свойства у порожденных сущностей, ведь в ObjectContext такого нет!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2010, 10:35 |
|
||
|
поделитесь опытом по Data Services
|
|||
|---|---|---|---|
|
#18+
1 к 1 Data Services сплитует в 1 сущность. Такая фича есть в EF4. Передавать деревья "одним махом" технически не возможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2010, 12:34 |
|
||
|
поделитесь опытом по Data Services
|
|||
|---|---|---|---|
|
#18+
bured1 к 1 Data Services сплитует в 1 сущность. Такая фича есть в EF4. Нет, когда две таблицы маппируются на 1 сущность, это вопрос не решает. Я хотел выделить общую часть данных для нескольких сущностей в отдельную таблицу. Вначале это было родительской сущностью, но из-за ограничений на дочернюю сущность по соображениям указанным выше пришлось отказаться. Потом я выделил общие данные в отдельную сущность и сделал отношение один к одному, но получил другой геморой. Дело в том, что я уже сделал движок интерфейса (связка списков, дочерних сущностей, форм для просмотра списков, форм для редактирования и добавления, сортировка и т.п.) и движок этот был ориентирован на одну сущность. А когда появилось отношение один к одному, то нужно иметь дело с двумя сущностями, и переделывать под это движок - огромная проблема, к тому же логика такого движка будет выглядеть довольно неприглядно. Короче я включил общую часть данных в каждую сущность, и пока этим решил вопрос. Но до сих пор нахожусь в недоумении почему навигационные свойства у порожденных сущностей запрещены в Data Services, а в EF - разрешены. Ведь наличие таких свойств - это все логично. Может просто не хватио времени на реализацию? Буду надеяться, что в следущем FW эти ограничения уберут. авторПередавать деревья "одним махом" технически не возможно. Я может быть не совсем понимаю что такое "деревья". Но передавать в одном запросе все навигационные свойства всех сущностей возможно - это Expand, или передача привязки к конкретной сущности - LoadProperty. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2010, 10:22 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=36814283&tid=1351114]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
174ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 244ms |
| total: | 535ms |

| 0 / 0 |
