【发布时间】: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