![](/img/trans.png)
[英]How to store an object as a string in database using Entity Framework 6 code first
[英]How can I store an Array of Ints in my database, in a single field, using Code First Entity Framework?
我想做的是在我的數據庫中存儲一個整數數組。 我正在使用Code First Entity Framework創建數據庫,但似乎無法在數據庫中創建List或Array元素。 列表項不會創建一個字段。 我認為這是因為它將需要一個單獨的表。
在這里將數組存儲在單個字段中的最佳方法是什么。 我應該將數組轉換為String還是有更簡單的方法?
我的模型包含:
public string Title { get; set; }
public List<int> IdArray { get; set; }
NHibernate支持此功能,但EF不支持。
如果需要這樣做,唯一的選擇是將其序列化存儲。 例如,您可以執行以下操作:
XML
列,並將其序列化存儲為XML char
列,並將其序列化為JSON存儲 EF不會自動對其進行序列化/反序列化。 您應該添加一個為您執行序列化/反序列化的屬性
public string IdsColumn { get; set; } // Mapped to DB
[NotMapped]
public List<int> Ids
{
get { return Deserialize(IdsColumn); }
set { IdsColumn = Serialize(value); }
}
當然,您必須提供序列化功能實現,例如使用XMLSerializer
或JSON.NET。
如果要實現此功能,請查看此處: EF數據用戶語音
您可以投票。
我不太確定您的處境,但是在大多數情況下,這永遠是不必要的...
基本上,如果您遇到這種情況,則應該考慮進一步標准化表格。 表中的數據必須是“原子的”。 一旦檢索為對象,它就可以在列表中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.