0

场景是我有 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 中,我在各种操作合同(方法)中返回实体(表);

从第 2 层开始,在 WCF 外观中,我添加了对 WCF Proper 的服务引用,并且可以访问实体对象,包括它们的关系(链接表)等;然后我尝试在WCF Facade的各种操作契约中,根据需要暴露一些实体对象;

从第 1 层开始,将 WCF 外观添加为服务引用并在设计时访问方法没有问题,但在运行时出现错误“底层连接已关闭。连接已意外关闭”。

我已经知道这与超时无关,而是实体无法在 tier1 和 tier2 之间序列化的事实;如果我返回没有链接关系的单个实体,则此操作不会出错。

Q1。如何在层之间传递 EntityFramework 实体(其中包含子/父实体)?(不管合适不合适)

Q2。在 Tier2 和 Tier3 之间传递所述实体没有问题,并且关系顺利通过;为什么第 1 层和第 2 层之间的不同使其突然不可序列化?

4

0 回答 0