WCF,数据更新& EntityReference对象无法序列化

时间:2012-10-24 02:01:24

标签: wcf entity-framework .net-4.0 self-tracking-entities

我在WCF做了很多东西,我首先想到的是:“嗯,这个问题很奇怪” - 但在我想出每一个之后,它总是在某种程度上有意义(有时更多,有时更少)。
但是现在我处于困境并且充满想象力的地步,我想不出这个错误的原因:

  

无法序列化EntityReference对象。当RelationshipManager属于未实现IEntityWithRelationships的实体对象时,无法序列化此类对象。

把它放在一个上下文中,让我简单地告诉你我的程序:
我有一个客户端,它将一个ID发送给我的WCF。 如果这个ID正在使用中,我将从EF获取它的相关对象(其他我将创建一个新的)并将其发回。

这一切都是由Selftracking Entities完成的 - 让对象工作正常,以及第一次更新:

public static void UpdatePaperOnServer(ref PAPER p)
{
    var newP = ServiceClient.UpdatePaper(p);
    p = newP;
}

参考“p”是<节目>并且此变量将发生任何变化。

这是UpdatePaper的服务器端实现 正如你所看到的,这里也不会发生任何魔法:

public PAPER UpdatePaper(PAPER p)
{
    p.ChangePaperOnDb(); //Simple static DAL-Accessor, works fine

    return p; //The Client should get any changes made by other users so far, that's why I'll give the obj back... or if it's a new obj and it has an ID now
}

正如我所说,我的第一个更新工作正常,但只要我再次触发更新例程,我就会收到上面提到的这个错误。

在与我的好伙伴谷歌花了一些时间后,我发现只有一种方法,他们将.NET版本从4.0改为3.5。 但我不知道这是否适合我,因为我无法将运行时间从4.0更改为3.5。

如果有人知道发生了什么 - 请告诉我。 非常感谢你!

0 个答案:

没有答案