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

Мучаюсь все с той же проблемой каким же образом заставить работать Entity Framework в распределенном приложении :(

Попробовал сделать WCF контракты для всех классов разом, понял что будут глубокие проблемы с составлением сложных запросов..., попробовал ADO NET Data Services, после некоторых запросов сразу же понял, что мне это не подойдет (ни includ'ов, ни join'ов, ни select new {})

Осталась последняя надежда на interlinq, но здесь заглох на самом соединении.

Ниже привожу мои попытки настроить соединение клиента с сервером через interlinq:
Сервер.
0. Добавляю в рефренсы 2 dll (InterLINQ и InterLINQ.EntityFramework) ( качать отсюда )
1. Создаю модель EntityFramework
2. Код поднятия сервиса:
Код: plaintext
1.
2.
3.
            euo = new EFEntities6(); //наш контекст entity framework
            InterLinq.EntityFramework.EntityFrameworkQueryHandler eft = new InterLinq.EntityFramework.EntityFrameworkQueryHandler(euo);
            svv = new InterLinq.Communication.Wcf.ServerQueryWcfHandler(eft);
            svv.Start();

Как я понимаю на сервер фсе =)

Создаем клиент.
0. Добавляю в рефренсы 2 dll (InterLINQ и InterLINQ.EntityFramework) ( качать отсюда )
1. Также создаю модель EntityFramework (называю также как и на сервере по настоятельствам INTERLINQ)
2. Код коннекта к сервису:
Код: plaintext
1.
2.
3.
4.
5.
            InterLinq.Communication.Wcf.ClientQueryWcfHandler clientQueryHandler = new InterLinq.Communication.Wcf.ClientQueryWcfHandler();
            clientQueryHandler.Connect();

            //далее по примеру на interlinq необходимо создать свой контекст с привязкой к clientQueryHandler, на чем собственно и застрял
           //строка EFEntities6 euo = new EFEntities6(clientQueryHandler); не проходит (ошибка преобразования классов)
            EFEntities6 euo = new EFEntities6();

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

посмотрите примеры в конце концов.
...
Рейтинг: 0 / 0
EntityFramework + InterLinq
    #36272557
cha0ss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
уТКану вы хоть немного мануал почитайте, вы что думаете, опыт и знания просто так из воздуха берутся?

посмотрите примеры в конце концов.

да в том то и дело что не нашел примеров :(
На http://interlinq.codeplex.com есть примерчик, собсно по нему и получилась эта некая попытка соединения. Качал справку с того же сайта, на Entity Framework там тоже примеров нету :(

Поэтому и спрашиваю, может уже кто с этим сталкивался и к чему то пришел...
...
Рейтинг: 0 / 0
EntityFramework + InterLinq
    #36274470
cha0ss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В исходниках проекта нашел простые примеры... ушел копаться в них =) (находится в source code на сайте http://interlinq.codeplex.com/SourceControl/ListDownloadableCommits.aspx )
...
Рейтинг: 0 / 0
EntityFramework + InterLinq
    #36275118
cha0ss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все заработало =) оказалось надо создать дополнительный класс-прослойку над interlinqcontext.
В итоге на клиенте получился следующий код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
            clientQueryHandler = new InterLinq.Communication.Wcf.ClientQueryWcfHandler();
            clientQueryHandler.Connect();
            clientQueryHandler.StartSession();

            SimpleExampleContext sec = new SimpleExampleContext(clientQueryHandler);

            //Наш обычный linq запрос
            var c2 = from p in sec.LandRentPretender
                     where p.Org.OID == "0006000EC3BD"
                     select new { p.OID, Orgs = p.Org};

            this.l1.DataContext = c2;

и собственно сам класс надстройка:
Код: plaintext
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.
28.
using System.Linq;
using InterLinq;

namespace WpfApplication6
{
    public class SimpleExampleContext : InterLinqContext
    {
        public SimpleExampleContext(IQueryHandler queryHandler)
            : base(queryHandler)
        {
        }

        public IQueryable<LandRentPretender> LandRentPretender
        {
            get { return QueryHander.Get<LandRentPretender>(); }
        }

        public IQueryable<Person> Person
        {
            get { return QueryHander.Get<Person>(); }
        }

        public IQueryable<Org> Org
        {
            get { return QueryHander.Get<Org>(); }
        }

    }
}

Сервер остался прежним.

А и еще момент: не только классы модели от Entity Framework должны быть одинаковыми, но и сборки.
Все конечно бы хорошо, но походу у interLinq нету сохранения изменений datacontext..., что конечно меня в корне не устраивает. Так что если ничего легкого не придумается буду писать по стандарту по несколько WCF-контрактов на класс.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EntityFramework + InterLinq
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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