场景是我有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 Proper添加了一个服务引用,可以访问实体对象,包括它们的关系(链接表)等;然后我尝试在WCF Facade的各种操作合同中根据需要公开一些实体对象;
从第1层开始,将WCF Facade添加为服务引用并在DESIGN时间访问方法没有问题,但在RUNTIME发生错误“基础连接已关闭。连接意外关闭”。
我已经知道这与超时无关,而是因为实体无法在tier1和tier2之间序列化;如果我返回一个没有链接关系的单个实体,这可以正常工作。
Q1。如何在层之间传递EntityFramework实体(其中包含子/父实体)? (忽略它是否合适)
Q2。在Tier2和Tier3之间传递所述实体没有问题,并且关系通过正常;为什么Tier1和Tier2之间的不同使它突然变得不可序列化?