Entity framework WCF中的EntityFramework序列化问题-在层之间传递实体

Entity framework WCF中的EntityFramework序列化问题-在层之间传递实体,entity-framework,serialization,wcf,tiers,Entity Framework,Serialization,Wcf,Tiers,场景是我有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 Facade中,我向WCF本身添加了一个服务引用,并可以访问实体对

场景是我有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 Facade中,我向WCF本身添加了一个服务引用,并可以访问实体对象,包括它们的关系(链接表)等;然后,我尝试在WCF Facade的各种操作契约中根据需要公开一些实体对象

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

我已经知道这与超时无关,但与无法在tier1和tier2之间序列化实体有关;如果我返回一个没有链接关系的实体,这将不会出错

问题1。如何在层之间传递EntityFramework实体(其中包含子/父实体)?(忽略是否合适)


问题2。在Tier2和Tier3之间没有传递上述实体的问题,并且关系传递正常;为什么第1层和第2层之间的差异使其突然变得不可序列化?

为什么您有两个级别的WCF服务?门面的用途是什么?你为什么不使用直接传递WCF路由器/网桥,它可以在不处理序列化的情况下传递消息?你使用的是哪个版本的实体框架?@Ladislav Mrnka:两个级别不是我选择的,有时我们无法完全控制环境,而且很难说服控制基础设施的官员开放端口、防火墙等。@Johann Blais:visualstudio 2010附带的任何版本,我相信是EF4。