我有一個對象,其字段我想存儲在數據庫中。我將使用SQL Server Compact Edition(使用Visual C#Express 2010)。爲了記錄,我對數據庫編程(和一般數據庫)相當陌生。這個程序將每天用於閱讀電子郵件,處理內部訂單,存儲它們,並在必要時訪問它們以幫助完成訂單。訂單列表將變得非常大以存儲在列表中,寫入文件,從文件創建列表等。問題是每個訂單都包含所購買物品的列表。我知道我可以用二進制或XML序列化列表,並將該數據用作字段。但是,這阻止了我根據該列表進行搜索/選擇。例如,如果我想根據其中的物品來查找訂單,或者查看特定物品已被購買了多少次。由於這個列表的大小是任意的,我不能只創建一堆字段,只填寫我需要的字段(在我看來,這是一個壞主意)。如何將List <>作爲字段存儲在數據庫中? - C#(SQL Server精簡版)
寫這篇文章的時候我意識到了一個錯誤。如果我再次序列化列表,我可以比較序列化的數據以再次找到相同的列表(儘管這假定每次都以相同的方式對相同的數據進行序列化)。但是,我仍然無法找到任何特定的項目。
那麼,有沒有什麼辦法來存儲項目列表,固定數量的字段(最好是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;
}
所以我會創造我創建的每個列表中的一個新表,還是我失去了一些東西?
請發佈您迄今爲止編寫的代碼。一些白癡打破了我的水晶球:( – Brian
是否有一個令人信服的理由,你不是建立一個相關的一對多表中的項目? –
@MichaelPerrenoud是的,一個偉大的!我不知道那是什麼 – Fractalife