EntityFramework Сериализация проблема в WCF - передача сущностей между уровнями - PullRequest
0 голосов
/ 23 марта 2011

Сценарий: у меня есть 3 уровня / физические машины;

Tier1: Client(UI),

-- Firewall 1-- 
Tier2: WCF Facade, 

-- Firewall 2-- 
Tier3: WCF proper, DB Access Layer, Entity Framework(project with edmx fiels), DB

На уровне 3 в собственно WCF я возвращаю сущности (таблицы) в различных операционных контрактах (методах);

На втором уровне в Фасад WCF я добавляю ссылку на сервис к собственно WCF и могу получить доступ к объектам сущности, включая их отношения (связанные таблицы) и т. Д .; Затем я пытаюсь представить некоторые объекты сущности, как требуется, в различных рабочих контрактах WCF Facade;

На уровне 1 не возникает проблем с добавлением WCF Facade в качестве ссылки на службу и доступом к методам во время DESIGN, но при RUNTIME возникает ошибка «Основное соединение было закрыто. Соединение было неожиданно закрыто».

Я уже знаю, что это не имеет никакого отношения к таймауту, но к тому факту, что сущности не могут быть сериализованы между уровнями 1 и 2; если я возвращаю одну сущность без связанных отношений, это работает без ошибок.

Q1. Как можно передать сущности EntityFramework (в которых есть дочерние / родительские сущности) между уровнями? (игнорируя, подходит ли это или нет)

Q2. Нет проблем с передачей указанных сущностей между Tier2 и Tier3, и отношения проходят нормально; Почему между Tier1 и Tier2 есть различия, которые делают его внезапно не сериализуемым?

...