Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# POCO EF嵌套类的WCF序列化?_C#_Wcf_Entity Framework_Service - Fatal编程技术网

C# POCO EF嵌套类的WCF序列化?

C# POCO EF嵌套类的WCF序列化?,c#,wcf,entity-framework,service,C#,Wcf,Entity Framework,Service,我有个问题。我有一个WCF服务作为对实体框架的数据访问。我需要归还一些物品。这是我的第一个模型: [DataContract(IsReference = true)] public partial class Osoba { [DataMember] public int IdOsobe { get; set; } [DataMember] public string PrezimeOsobe { get; set; } [DataMember]

我有个问题。我有一个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; }
}
[DataContract(IsReference=true)]
公共部分类伙伴
{
公共伙伴()
{
this.Dokument=new HashSet();
}
[数据成员]
public int IdPartnera{get;set;}
[数据成员]
公共字符串OIB{get;set;}
[数据成员]
公共int TipPartnera{get;set;}
[数据成员]
公共可空IDMJESTASEDISTA{get;set;}
[数据成员]
公共字符串adrsjedita{get;set;}
[数据成员]
公共可空IdMjestaIsporuke{get;set;}
[数据成员]
公共字符串AdrIsporuke{get;set;}
[数据成员]
公共虚拟ICollection Dokument{get;set;}
[数据成员]
公共虚拟Mjesto Mjesto{get;set;}
[数据成员]
公共虚拟Mjesto Mjesto1{get;set;}
[数据成员]
公共虚拟Osoba Osoba{get;set;}
[数据成员]
公共虚拟Tvrtka Tvrtka{get;set;}
}

当我的服务返回Osoba时,伙伴引用对象不会序列化。Partner=null。我做错了什么?我试过使用ServiceKnownType属性,什么都没有

我已经做到了。代理不是问题,因为我将其用于我的代理
问题是EF-context.Entry(e).State=EntityState.Detached中的一行代码。每个包含的实体实际上都是分离的。我对此发表了评论,一切正常。非常感谢大家

您使用哪种序列化?默认WCF DataContractSerializer。我甚至为所有实体禁用了lazy laoding-无您如何加载Partner属性?您确定正在加载吗?在服务返回之前,一切都正常。我的服务中包含(p=>p.Partner)。我已经包括了我需要的东西。结果是好的,合作伙伴被加载,一切正常,直到返回。它实际上返回的是Partner property=null,而不是Partner property=null。也许代理类误导了数据协定序列化程序。在返回实体类之前,请尝试将它们显式地强制转换为实体类(
Osoba
对象和
Partner
属性),并告诉我会发生什么。