假设我有一些数据形式为
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 文件中)。
为了解决这个问题,我可以只存储产品 ID 列表而不是产品本身,然后将单独的“产品”集合序列化到另一个 XML 文件中——但这并不是一个干净的解决方案。
另一个想法是有一个包含客户和产品列表的 RepositoryClass。然后,客户只需要存储 productID,当您从 repo 请求“客户”时,它会处理查找和构建上述对象,因此我的其余代码不必担心数据是如何存储的. 这听起来像是一个更好的解决方案吗?你会怎么做?
解决方案的另一个要求是,我希望尽可能轻松地将解决方案连接到 GUI 以直接编辑属性(这实际上就是为什么我希望有一种方法可以将它全部存储在一个我可以绑定到的 XML 文件中WPF 窗口)。
提前感谢您的想法和建议!