Сценарий: у меня есть 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 есть различия, которые делают его внезапно не сериализуемым?