Staram się zserializować obiekt EF. Ale pojawia mi się błąd że nie można . Staram się to zrobić w taki sposób
private void serializacjaToolStripMenuItem_Click(object sender, EventArgs e)
{
using (biblioteczkaEntities polaczenie = new biblioteczkaEntities())
{
XmlRootAttribute oRootAttr = new XmlRootAttribute();
oRootAttr.ElementName = "Książka";
//oRootAttr.IsNullable = true;
XmlSerializer oSerializer = new XmlSerializer(typeof(List<Ksiażka>), oRootAttr);
StreamWriter oStreamWriter = null;
try
{
List<Ksiażka> ksiazki = polaczenie.Ksiażka.ToList();
oStreamWriter = new StreamWriter("ksiazki.xml");
oSerializer.Serialize(oStreamWriter, ksiazki);
}
catch (Exception oException)
{
Console.WriteLine("Aplikacja wygenerowała następujący wyjątek: " + oException.Message);
}
finally
{
if (null != oStreamWriter)
{
oStreamWriter.Dispose();
}
}
}
A moja klasa Ksiażka :
namespace Biblioteczka
{
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
[Serializable]
public partial class Ksiażka : IComparable<Ksiażka>
{
public int Id_ksiazki { get; set; }
public string Tytuł { get; set; }
public Nullable<short> Liczba_stron { get; set; }
public Nullable<bool> Druk { get; set; }
public Nullable<bool> Pdf { get; set; }
public Nullable<bool> Mobi { get; set; }
public Nullable<bool> Epub { get; set; }
public Nullable<bool> Przeczytana { get; set; }
[XmlIgnore]
public virtual Autor Autor { get; set; }
[XmlIgnore]
public virtual Kategoria Kategoria { get; set; }
[XmlIgnore]
public virtual Wydawnictwo Wydawnictwo { get; set; }
public int CompareTo(Ksiażka jaka)
{
return this.Tytuł.CompareTo(jaka.Tytuł);
}
}
}
Można w taki sposób serializować bo szukajac w google spotkałem się tylko z JSON .