【问题标题】:WCF Serialization of POCO EF nested class?POCO EF嵌套类的WCF序列化?
【发布时间】:2014-05-05 11:48:41
【问题描述】:

我有问题。我有一个 WCF 服务作为对我的实体框架的数据访问。我需要返回一些对象。这是我的第一个模型:

[DataContract(IsReference = true)]
public partial class Osoba
{
    [DataMember]
    public int IdOsobe { get; set; }
    [DataMember]
    public string PrezimeOsobe { get; set; }
    [DataMember]
    public string ImeOsobe { get; set; }
    [DataMember]
    public virtual Partner Partner { get; set; }
}

这是我的第二个模型:

[DataContract(IsReference = true)]
public partial class Partner
{
    public Partner()
    {
        this.Dokument = new HashSet<Dokument>();
    }

    [DataMember]
    public int IdPartnera { get; set; }
    [DataMember]
    public string OIB { get; set; }
    [DataMember]
    public int TipPartnera { get; set; }
    [DataMember]
    public Nullable<int> IdMjestaSjedista { get; set; }
    [DataMember]
    public string AdrSjedista { get; set; }
    [DataMember]
    public Nullable<int> IdMjestaIsporuke { get; set; }
    [DataMember]
    public string AdrIsporuke { get; set; }

    [DataMember]
    public virtual ICollection<Dokument> Dokument { get; set; }
    [DataMember]
    public virtual Mjesto Mjesto { get; set; }
    [DataMember]
    public virtual Mjesto Mjesto1 { get; set; }
    [DataMember]
    public virtual Osoba Osoba { get; set; }
    [DataMember]
    public virtual Tvrtka Tvrtka { get; set; }
}

当我的服务返回 Osoba 时,Partner 引用对象未序列化。合作伙伴 = 空。我究竟做错了什么?我试过使用 ServiceKnownType 属性,没有。

【问题讨论】:

  • 你使用什么样的序列化?
  • 默认 WCF DataContractSerializer。我什至禁用了所有实体的延迟加载 - 没有
  • 如何加载合作伙伴属性?你确定要加载它吗?
  • 一切正常,直到服务返回。我的服务中有 Include(p=>p.Partner)。我已经包括了我需要的东西。结果没问题,合作伙伴已加载一切正常,直到返回。它实际上返回,而不是 Partner property = null
  • 也许代理类误导了数据契约序列化程序。尝试将它们显式(Osoba 对象和 Partner 属性)强制转换为实体类,然后再返回它们并让我知道会发生什么。

标签: c# wcf entity-framework service


【解决方案1】:

我已经做到了。代理不是问题,因为我将它用于我的代理http://msdn.microsoft.com/en-us/library/vstudio/ee705457(v=vs.100).aspx 问题是 EF 中的一行代码 - context.Entry(e).State = EntityState.Detached。每个包含的实体实际上都是分离的。我对此发表了评论,一切正常。非常感谢大家

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多