powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / WCF + EntityFramework
14 сообщений из 14, страница 1 из 1
WCF + EntityFramework
    #36264759
cha0ss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, возникла следующая проблема:

Я только начал изучать Entity Framework и построил простейшее приложение для работы с БД.
Теперь решил реализовать то же самое только в распределенно приложении.

В нераспределенном приложении есть код изменения физ.лиц:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
	var q from c in efbd.Person
         where c.LastName = 'Petrov'
         select c

listbox1.DataContext = q;

//После изменений в ListBox'e

efbd.SaveChanges();

Теперь хочу следующее реализовать в распределенном приложении. Получается что-то вроде этого (привожу в схем. варианте):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
TestServiceClient ttt = new TestServiceClient();
ttt.Open();
List<Person> l = ttt.GetAllPersonsWhichArePetrov() //Получаем всех Петровых
listbox1.DataContext = l;

//На клиенте изменяем текущий лист Персонов

ttt.SaveListOfPersons(l) //Сохраняем изменения в БД

ttt.GetAllPersonsWhichArePetrov() и ttt.SaveListOfPersons(l) - методы в WCF

Собственно в чем вопрос:
Возможна ли такая схема работы Entity Framework и WCF?
1. Клиент формирует запрос какой ей необходимо (в данном случае вытащить всех Петровых)
2. отправляет текст запроса серверу
3. Сервер по запросу получает набор данных, отправляет клиенту
4. Клиент присоединяет полученный DataContext к какому-нибудь компоненту, типа ListBox, изменяет его и отсылает обратно серверу на сохранение.

Можно кидаться ссылками на статьи =) Буду рад любой информации.
...
Рейтинг: 0 / 0
WCF + EntityFramework
    #36265123
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по поводу формирования запросов, присмотритесь к Net RIA Services он более гибок и приятен в обращении.
...
Рейтинг: 0 / 0
WCF + EntityFramework
    #36265146
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cha0ss,

сущности и их коллекции можно таскать через SOAP. Делайте контракты. А контекст в 3.5 не сериализуем. Его никак не передать (средствами EF, без сторонних примочек).
Ваш код честно говоря не понял.
...
Рейтинг: 0 / 0
WCF + EntityFramework
    #36265886
cha0ss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообщем суть в том, что мне нельзя в проекте на каждый класс создавать контракты. Мне нужен 1 Operation Contract на добавление объекта, 1 на удаление, 1 на сохранение и т.д, т.е чтобы контракт был динамический (не был жестко привязан к конкретному классу).
...
Рейтинг: 0 / 0
WCF + EntityFramework
    #36266277
cha0ss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
уТКапо поводу формирования запросов, присмотритесь к Net RIA Services он более гибок и приятен в обращении.

А мне подойдет эта технология если я пишу не веб-приложение?

Если есть простейшие примеры, можешь прикрепить к сообщению...
...
Рейтинг: 0 / 0
WCF + EntityFramework
    #36266871
МихаилР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если вы хотите распределенно работать с данными, то можете воспользоваться одним из следующих вариантов:

1. Создание обычных WCF-контрактов. Здесь могут быть подварианты:
а) На каждую сущность свой набор контрактов
б) Универсальный crud-сервис, который оперирует сущностями, например, по имени.
У этого варианта есть большие проблемы с произвольными запросами - придется или плодить методы для каждого варианта выборок, или реализовывать свой механизм запросов.

2. Использовать ADO.Net Data Services - готовый механизм для crud-операций. Правда, на текущий момент возможности ощутимо ограничены (с ходу: нет join, expand можно сделать только для одной связи, если нужна только часть полей, то доставать можно только 1 объект, ...) и приличное количество ошибок и несуразностей.

3. Использовать решения на манер InterLINQ (сериализация LINQ-запроса, передача на сервер, выполнение и возврат результата). Увы, там тоже свои тараканы. Например, т.к. используется Net-сериализация, нужно как на сервере, так и на клиенте использовать единые классы/сборки (хотя может это и обходится, но не уверен), т.е. нужно как-то допиливать...
Плюс развивается оно весьма неторопливо

В общем, совершенства не наблюдается.
Будь побольше времени (сильно побольше!), я бы посоветовал подумать над вариантом собственного решения на базе InterLinq, но там просто прорва работы, т.к. нужно, по-сути повторить функционал ORM в распределенке. Т.е. хорошо бы было иметь отслеживание изменений на клиенте (трэкинг изменений), атоматическое обновление с сервера (для автовычисляемых полей), ...

А так... Посмотрите, может вам будет достаточно отказаться от crud-операций и выпускать наружу только крупные бизнес-операции, их будет наверняка меньше чем crud, и все схема будет вполне приличной.
...
Рейтинг: 0 / 0
WCF + EntityFramework
    #36267223
cha0ss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А куда относится технология, которая была предложена выше .NET Ria Services?

МихаилР
2. Использовать ADO.Net Data Services - готовый механизм для crud-операций. Правда, на текущий момент возможности ощутимо ограничены (с ходу: нет join, expand можно сделать только для одной связи, если нужна только часть полей, то доставать можно только 1 объект, ...) и приличное количество ошибок и несуразностей.


По поводу ADO.Net Data Services - нету join - это всмысле мы не сможем объединить таблицы без связей?
...
Рейтинг: 0 / 0
WCF + EntityFramework
    #36267916
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.NET Ria Services - относится к Веб-приложениям.
в Вашем случае видимо подойдет (как сказали выше) ADO.NET Data Services, если камнем преткновения не станут минусы.
...
Рейтинг: 0 / 0
WCF + EntityFramework
    #36269295
cha0ss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МихаилР
3. Использовать решения на манер InterLINQ (сериализация LINQ-запроса, передача на сервер, выполнение и возврат результата). Увы, там тоже свои тараканы. Например, т.к. используется Net-сериализация, нужно как на сервере, так и на клиенте использовать единые классы/сборки (хотя может это и обходится, но не уверен), т.е. нужно как-то допиливать...
Плюс развивается оно весьма неторопливо


Извините, а есть хоть какие-нибудь обсуждения/примеры по этой InterLINQ на русском языке? Вроде как, как раз то, что мне и нужно, но на английском слишком долго вникаю :(
...
Рейтинг: 0 / 0
WCF + EntityFramework
    #36269327
WCF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WCF
Гость
На русском мало чего толкового есть. Привыкайте.
По сабжу: если сущности наследуются от одной базовой - можно вывернуться и меньшим кол-вом веб-методов.
...
Рейтинг: 0 / 0
WCF + EntityFramework
    #36272294
МихаилР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cha0ss По поводу ADO.Net Data Services - нету join - это всмысле мы не сможем объединить таблицы без связей?
Увы, сейчас могу напутать и ввести Вас в заблуждение, но как мне помниться, ADO.Net DS не позволял:
- использовать несвязанные в модели таблицы (то, что вы писали).
- использовать в условиях связанные объекты. Например, что-то вида
Код: plaintext
1.
2.
select org in Organizations
where org.Region.City == "Москва"
- получать выборку по связанным таблицам, т.е. поля сразу двух объектов

Но, опять-таки, повторюсь - я очень бегло знакомился с ADO.Net DS и было это не вчера. Мы просто отказались пока от его использования до лучших времен

cha0ssИзвините, а есть хоть какие-нибудь обсуждения/примеры по этой InterLINQ на русском языке? Вроде как, как раз то, что мне и нужно, но на английском слишком долго вникаю :(
Думаю, что и на английском будет не много - проект не слишком-то популярен. Я уже писал - он использует весьма спорный подход.
Впрочем, это не слишком большой по размеру кода проект - в случае непонимания там можно все изучить по нему.
Плюс, на сайте или в самом проекте были примеры использования. Вроде бы достаточно прозрачные.
...
Рейтинг: 0 / 0
WCF + EntityFramework
    #36276156
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cha0ssВообщем суть в том, что мне нельзя в проекте на каждый класс создавать контракты. Мне нужен 1 Operation Contract на добавление объекта, 1 на удаление, 1 на сохранение и т.д, т.е чтобы контракт был динамический (не был жестко привязан к конкретному классу).
В CSLA.NET c Data_Portal<T> нет необходимости создавать отдельные контракты с одним WCF сервисом.Работа с ним гораздо проще и лучше.ЕF похожа на его кальку
...
Рейтинг: 0 / 0
WCF + EntityFramework
    #36276182
cha0ss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SeVa
В CSLA.NET c Data_Portal<T> нет необходимости создавать отдельные контракты с одним WCF сервисом.Работа с ним гораздо проще и лучше.ЕF похожа на его кальку
Ок, сейчас еще одну свою бредовую идею проверю и если не получится, то почитаю про CSLA.NET
...
Рейтинг: 0 / 0
WCF + EntityFramework
    #36276239
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мой тебе совет - забей на ЕF
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / WCF + EntityFramework
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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