我有一个对象,我想将其字段存储在数据库中。我将使用 SQL Server Compact Edition(带有 Visual C# Express 2010)。作为记录,我对使用数据库(以及一般的数据库)进行编程是相当新的。该程序将每天用于阅读电子邮件、处理其中的订单、存储它们并在必要时访问它们以帮助完成订单。订单列表将变得非常大,无法存储在列表中、写入文件、从文件创建列表等。问题是每个订单都包含所购买商品的列表。我知道我可以用二进制或 XML 序列化列表,并将该数据用作字段。但是,这会阻止我根据该列表进行搜索/选择。例如,如果我想根据里面的物品来查找订单,或查看特定商品的购买次数。由于列表的大小是任意的,我不能只创建一堆字段并只填写我需要的字段(在我看来,这无论如何都是个坏主意)。
在写这篇文章时,我意识到了一个错误。如果我再次序列化列表,我可以比较序列化的数据以再次找到相同的列表(虽然,这假设相同的数据每次都以相同的方式序列化)。但是,我仍然无法找到任何特定的项目。
那么,有没有办法将项目列表存储在固定数量的字段中(最好是 1 个),并且仍然能够通过查询搜索其内容(我很可能会使用 LINQ)?
编辑:解决我到目前为止所得到的:首先,谢谢!我开始拼凑我必须做的事情,但我并不完全在那里。共识似乎是每组项目都有一个表格。这是否意味着我每个月都会创建数千张表?
重新阅读我的问题后,我意识到我必须更清楚。收到订单后,我解析数据并将其存储在 Order 对象中,该对象由客户信息和商品列表组成。这是我要存储的简化版本:
class Order{
private DateTime date;
private String orderNumber;
private String buyerName;
private List<Item> items;
private String address;
}
class Item{
private String itemCode;
private String description;
private int quantity;
}
那么我是否必须为我创建的每个列表创建一个新表,或者我错过了什么?