【发布时间】:2015-04-24 08:48:43
【问题描述】:
我有一个包含 EF、MVC 和 Web API 的项目。当我们第一次创建模型时,列表是虚拟的,用于启用延迟加载。这给出了错误The 'ObjectContent1' type failed to serialize the response body for content type 'application/xml; charset=utf-8'.,因此我们决定移除延迟加载。
现在,当我们通过 Web API 获取对象时,我们会得到像 <DossiersAlsMedebeheerder i:nil="true"/> 这样的标签。它声明对象是null,但我们想要加载更多数据,至少是列表中对象的ID。
有没有一种方法可以在不使用延迟加载的情况下做到这一点?我们是 C# 的新手,但在一个学校项目中需要这个,我们必须在 Web API 和 Android 应用程序之间进行通信。
型号:
public class Gebruiker
{
[Key]
public int GebruikerID { get; set; }
[Required]
public string Voornaam { get; set; }
[Required]
public string Familienaam { get; set; }
[Required]
[EmailAddress]
[Display(Name = "Email")]
public string MailAdres { get; set; }
[Required]
[StringLength(100, ErrorMessage = "Het {0} moet minstens {2} tekens lang zijn.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Wachtwoord")]
public string Wachtwoord { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Bevestig Wachtwoord")]
[Compare("Wachtwoord", ErrorMessage = "Het wachtwoord en de bevestiging komen niet overeen.")]
public string BevestigWachtwoord { get; set; }
public GebruikerStatus GebruikerStatus { get; set; }
public Gebruikerstype Gebruikerstype { get; set; }
[Display(Name = "Geboorte Datum")]
//[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime GeboorteDatum { get; set; }
[Required]
public int Postcode { get; set; }
[Required]
public string Gemeente { get; set; }
[Required]
public string Gebruikersnaam { get; set; }
public DateTime LaatstGezien { get; set; }
public List<Module> ModulesAlsExpert { get; set; }
public List<Antwoord> Antwoorden { get; set; }
public List<Dossier> DossiersAlsMedebeheerder { get; set; }
public List<Like> Likes { get; set; }
}
XML(输出):
<ArrayOfGebruiker>
<Gebruiker>
<Antwoorden i:nil="true"/>
<BevestigWachtwoord>test123</BevestigWachtwoord>
<DossiersAlsMedebeheerder i:nil="true"/>
<Familienaam>VG</Familienaam>
<GeboorteDatum>1993-04-10T00:00:00</GeboorteDatum>
<GebruikerID>1</GebruikerID>
<GebruikerStatus>Toegelaten</GebruikerStatus>
<Gebruikersnaam>Laurens</Gebruikersnaam>
<Gebruikerstype>Expert</Gebruikerstype>
<Gemeente>Leuven</Gemeente>
<LaatstGezien>2009-04-10T00:00:00</LaatstGezien>
<Likes i:nil="true"/>
<MailAdres>Laurens.vg@gmail.com</MailAdres>
<ModulesAlsExpert i:nil="true"/>
<Postcode>8000</Postcode>
<Voornaam>Laurens</Voornaam>
<Wachtwoord>test123</Wachtwoord>
</Gebruiker>
</ArrayOfGebruiker>
【问题讨论】:
标签: c# entity-framework serialization asp.net-web-api lazy-loading