Вы можете сделать это за пару шагов.
Шаг 1 : Установите для свойства Relation.Nested значение True.
dsSet.Relations.Add(
"RelationCustumerOrder",
dsSet.Tables["Custumer"].Columns["CustumerId"],
dsSet.Tables["Order"].Columns["CustumerId"]
);
dsSet.Relations[0].Nested = true;
Шаг 2 : преобразовать в Xml.
StringWriter sw = new StringWriter();
dsSet.WriteXml(sw);
string xmlString = sw.ToString();
Шаг 3 : Сериализация в качестве Json для окончательного результата
XmlDocument doc = new XmlDocument();
doc.LoadXml(xmlString);
JsonSerializerSettings settings = new JsonSerializerSettings();
settings.TypeNameHandling = TypeNameHandling.All;
string jsonResult = JsonConvert.SerializeXmlNode(doc, Newtonsoft.Json.Formatting.Indented);
Окончательный результат для образца будет
{
"OrderManagement": {
"Custumer": [
{
"CustumerId": "1",
"Name": "Chris",
"Order": [
{
"OrderId": "1",
"CustumerId": "1",
"Article": "chocolate"
},
{
"OrderId": "2",
"CustumerId": "1",
"Article": "apples"
}
]
},
{
"CustumerId": "2",
"Name": "Ronja",
"Order": {
"OrderId": "3",
"CustumerId": "2",
"Article": "dogfood"
}
},
{
"CustumerId": "3",
"Name": "Thomas",
"Order": [
{
"OrderId": "4",
"CustumerId": "3",
"Article": "keyboard"
},
{
"OrderId": "4",
"CustumerId": "3",
"Article": "tomatos"
},
{
"OrderId": "4",
"CustumerId": "3",
"Article": "green tea"
}
]
}
]
}
}
Это может быть ошибкой в resharper, отключить resharper и видеть, происходит ли это все еще. Если так, сообщите об ошибке к resharper. Они являются обычно довольно быстро реагирующими.
Я знаю, что немного поздно, но я просто подтвердил, что сборка 1212, кажется, работает с автоматически сгенерированным кодом.
Может быть ошибка в ReSharper. Вы могли попробовать ReSharper 4.5, ночью создает (предварительный выпуск), чтобы видеть, фиксируется ли он уже для этой версии. В противном случае зарегистрируйте ошибку в нашей системе отслеживания ошибок (инструкции).Спасибо.