|
|
|
WCF + EntityFramework
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, возникла следующая проблема: Я только начал изучать Entity Framework и построил простейшее приложение для работы с БД. Теперь решил реализовать то же самое только в распределенно приложении. В нераспределенном приложении есть код изменения физ.лиц: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Теперь хочу следующее реализовать в распределенном приложении. Получается что-то вроде этого (привожу в схем. варианте): Код: plaintext 1. 2. 3. 4. 5. 6. 7. ttt.GetAllPersonsWhichArePetrov() и ttt.SaveListOfPersons(l) - методы в WCF Собственно в чем вопрос: Возможна ли такая схема работы Entity Framework и WCF? 1. Клиент формирует запрос какой ей необходимо (в данном случае вытащить всех Петровых) 2. отправляет текст запроса серверу 3. Сервер по запросу получает набор данных, отправляет клиенту 4. Клиент присоединяет полученный DataContext к какому-нибудь компоненту, типа ListBox, изменяет его и отсылает обратно серверу на сохранение. Можно кидаться ссылками на статьи =) Буду рад любой информации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2009, 15:56 |
|
||
|
WCF + EntityFramework
|
|||
|---|---|---|---|
|
#18+
по поводу формирования запросов, присмотритесь к Net RIA Services он более гибок и приятен в обращении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2009, 17:41 |
|
||
|
WCF + EntityFramework
|
|||
|---|---|---|---|
|
#18+
cha0ss, сущности и их коллекции можно таскать через SOAP. Делайте контракты. А контекст в 3.5 не сериализуем. Его никак не передать (средствами EF, без сторонних примочек). Ваш код честно говоря не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2009, 17:47 |
|
||
|
WCF + EntityFramework
|
|||
|---|---|---|---|
|
#18+
Вообщем суть в том, что мне нельзя в проекте на каждый класс создавать контракты. Мне нужен 1 Operation Contract на добавление объекта, 1 на удаление, 1 на сохранение и т.д, т.е чтобы контракт был динамический (не был жестко привязан к конкретному классу). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2009, 08:50 |
|
||
|
WCF + EntityFramework
|
|||
|---|---|---|---|
|
#18+
уТКапо поводу формирования запросов, присмотритесь к Net RIA Services он более гибок и приятен в обращении. А мне подойдет эта технология если я пишу не веб-приложение? Если есть простейшие примеры, можешь прикрепить к сообщению... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2009, 11:13 |
|
||
|
WCF + EntityFramework
|
|||
|---|---|---|---|
|
#18+
Если вы хотите распределенно работать с данными, то можете воспользоваться одним из следующих вариантов: 1. Создание обычных WCF-контрактов. Здесь могут быть подварианты: а) На каждую сущность свой набор контрактов б) Универсальный crud-сервис, который оперирует сущностями, например, по имени. У этого варианта есть большие проблемы с произвольными запросами - придется или плодить методы для каждого варианта выборок, или реализовывать свой механизм запросов. 2. Использовать ADO.Net Data Services - готовый механизм для crud-операций. Правда, на текущий момент возможности ощутимо ограничены (с ходу: нет join, expand можно сделать только для одной связи, если нужна только часть полей, то доставать можно только 1 объект, ...) и приличное количество ошибок и несуразностей. 3. Использовать решения на манер InterLINQ (сериализация LINQ-запроса, передача на сервер, выполнение и возврат результата). Увы, там тоже свои тараканы. Например, т.к. используется Net-сериализация, нужно как на сервере, так и на клиенте использовать единые классы/сборки (хотя может это и обходится, но не уверен), т.е. нужно как-то допиливать... Плюс развивается оно весьма неторопливо В общем, совершенства не наблюдается. Будь побольше времени (сильно побольше!), я бы посоветовал подумать над вариантом собственного решения на базе InterLinq, но там просто прорва работы, т.к. нужно, по-сути повторить функционал ORM в распределенке. Т.е. хорошо бы было иметь отслеживание изменений на клиенте (трэкинг изменений), атоматическое обновление с сервера (для автовычисляемых полей), ... А так... Посмотрите, может вам будет достаточно отказаться от crud-операций и выпускать наружу только крупные бизнес-операции, их будет наверняка меньше чем crud, и все схема будет вполне приличной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2009, 14:01 |
|
||
|
WCF + EntityFramework
|
|||
|---|---|---|---|
|
#18+
А куда относится технология, которая была предложена выше .NET Ria Services? МихаилР 2. Использовать ADO.Net Data Services - готовый механизм для crud-операций. Правда, на текущий момент возможности ощутимо ограничены (с ходу: нет join, expand можно сделать только для одной связи, если нужна только часть полей, то доставать можно только 1 объект, ...) и приличное количество ошибок и несуразностей. По поводу ADO.Net Data Services - нету join - это всмысле мы не сможем объединить таблицы без связей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2009, 15:32 |
|
||
|
WCF + EntityFramework
|
|||
|---|---|---|---|
|
#18+
.NET Ria Services - относится к Веб-приложениям. в Вашем случае видимо подойдет (как сказали выше) ADO.NET Data Services, если камнем преткновения не станут минусы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2009, 21:14 |
|
||
|
WCF + EntityFramework
|
|||
|---|---|---|---|
|
#18+
МихаилР 3. Использовать решения на манер InterLINQ (сериализация LINQ-запроса, передача на сервер, выполнение и возврат результата). Увы, там тоже свои тараканы. Например, т.к. используется Net-сериализация, нужно как на сервере, так и на клиенте использовать единые классы/сборки (хотя может это и обходится, но не уверен), т.е. нужно как-то допиливать... Плюс развивается оно весьма неторопливо Извините, а есть хоть какие-нибудь обсуждения/примеры по этой InterLINQ на русском языке? Вроде как, как раз то, что мне и нужно, но на английском слишком долго вникаю :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2009, 15:04 |
|
||
|
WCF + EntityFramework
|
|||
|---|---|---|---|
|
#18+
На русском мало чего толкового есть. Привыкайте. По сабжу: если сущности наследуются от одной базовой - можно вывернуться и меньшим кол-вом веб-методов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2009, 15:12 |
|
||
|
WCF + EntityFramework
|
|||
|---|---|---|---|
|
#18+
cha0ss По поводу ADO.Net Data Services - нету join - это всмысле мы не сможем объединить таблицы без связей? Увы, сейчас могу напутать и ввести Вас в заблуждение, но как мне помниться, ADO.Net DS не позволял: - использовать несвязанные в модели таблицы (то, что вы писали). - использовать в условиях связанные объекты. Например, что-то вида Код: plaintext 1. 2. Но, опять-таки, повторюсь - я очень бегло знакомился с ADO.Net DS и было это не вчера. Мы просто отказались пока от его использования до лучших времен cha0ssИзвините, а есть хоть какие-нибудь обсуждения/примеры по этой InterLINQ на русском языке? Вроде как, как раз то, что мне и нужно, но на английском слишком долго вникаю :( Думаю, что и на английском будет не много - проект не слишком-то популярен. Я уже писал - он использует весьма спорный подход. Впрочем, это не слишком большой по размеру кода проект - в случае непонимания там можно все изучить по нему. Плюс, на сайте или в самом проекте были примеры использования. Вроде бы достаточно прозрачные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2009, 13:39 |
|
||
|
WCF + EntityFramework
|
|||
|---|---|---|---|
|
#18+
cha0ssВообщем суть в том, что мне нельзя в проекте на каждый класс создавать контракты. Мне нужен 1 Operation Contract на добавление объекта, 1 на удаление, 1 на сохранение и т.д, т.е чтобы контракт был динамический (не был жестко привязан к конкретному классу). В CSLA.NET c Data_Portal<T> нет необходимости создавать отдельные контракты с одним WCF сервисом.Работа с ним гораздо проще и лучше.ЕF похожа на его кальку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2009, 09:08 |
|
||
|
WCF + EntityFramework
|
|||
|---|---|---|---|
|
#18+
SeVa В CSLA.NET c Data_Portal<T> нет необходимости создавать отдельные контракты с одним WCF сервисом.Работа с ним гораздо проще и лучше.ЕF похожа на его кальку Ок, сейчас еще одну свою бредовую идею проверю и если не получится, то почитаю про CSLA.NET ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2009, 09:18 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=36276156&tid=1351621]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
188ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 522ms |

| 0 / 0 |
