Предполагая, что у меня есть некоторые данные в виде
Customer1
Name
Address
Order1
ID
Products
Product1
ID
Product2
ID
Customer2
...
Использование следующего класса для его представления
class Customer
{
public String name { get; set; }
public String Address {get; set;}
public List<OrderInfo> Orders { get; set; }
}
class Order
{
public int ID { get; set; }
public List<Product> Products { get; set; }
}
class Product
{
public int ID { get; set; }
}
Я бы хотел использовать сериализацию XML для чтения / записи данных, а не использовать структуру сущностей и SQL. С помощью структуры сущностей я смогу определить отношение «многие к одному», чтобы каждый продукт сохранялся в базе данных только один раз, а каждый заказ просто ссылался на него. Используя приведенный выше код с сериализацией XML, я понимаю, что будет сохранено много копий каждого продукта (как в памяти, так и в файле XML).
Чтобы исправить это, я мог бы просто сохранить список идентификаторов продуктов вместо самих продуктов, а затем просто сериализовать отдельную коллекцию «продуктов» в другой файл XML - но это не кажется мне чистым решением.
Другой идеей было бы иметь класс RepositoryClass, который содержал бы список клиентов и продуктов. В этом случае клиенты должны будут хранить только идентификаторы продуктов, а когда вы запрашиваете «клиента» в репозитории, он обрабатывает поиск и создание вышеуказанных объектов, поэтому остальной части моего кода не придется беспокоиться о том, как хранятся данные. , Это звучит как лучшее решение? Как бы вы это сделали?
Другое требование к решению это то, что я хочу, чтобы как можно проще было подключить решение к графическому интерфейсу для непосредственного редактирования свойств (поэтому на самом деле я хочу, чтобы был способ сохранить все это в одном XML-файле, который я мог бы просто привязать к окну WPF).
Заранее спасибо за ваши мысли и советы!