Я собрал свой * .dbml файл с необходимыми таблицами, и сгенерировал отношения, 1 ко многим.
Один из моих методов в моей библиотеке служб WCF имеет этот запрос
IQueryable<Client>localClient = from c in db.Clients
where c.ClientID.Equals(2612)
select c;
foreach(Client currentClient in localClient)
{
//Call serialize method here
}
Одной из таблиц, у которых клиент имеет отношения 1 ко многим, является Клиент - Сотрудник
С помощью localClient я хочу сериализовать это и вернуться к вызывающему. Однако он говорит мне, что XML-документ не может быть сформирован.
Это InnerException:
При сериализации объекта типа TestDB_Public.Employee обнаружена циклическая ссылка.
мой код сериализации
public string Serialize(object o, XmlSerializerNamespaces ns)
{
try
{
System.IO.MemoryStream m = new System.IO.MemoryStream();
if (ns != null)
serializer.Serialize(m, o, ns);
else
serializer.Serialize(m, o);
m.Position = 0;
byte[] b = new byte[m.Length];
m.Read(b, 0, b.Length);
return System.Text.UTF8Encoding.UTF8.GetString(b);
}
catch (Exception ex)
{
return "Ex = " + ex.ToString();
}
}
Возможна ли сериализация IQueryable <> с отношениями 1 ко многим?